Calendar: core: fix

This commit is contained in:
NikolayRechkin 2021-06-30 16:36:45 +03:00
parent 5060e81b5f
commit 2e2bcfa35e
6 changed files with 13 additions and 168 deletions

View File

@ -33,9 +33,11 @@ using ASC.Core.Users;
using ASC.Api.Core;
using ASC.Web.Core.Users;
using ASC.Common.Utils;
using System.Runtime.Serialization;
namespace ASC.Calendar.ExternalCalendars
{
[DataContract(Name = "birthdayCalendar", Namespace = "")]
public sealed class BirthdayReminderCalendar : BaseCalendar
{
public readonly static string CalendarId = "users_birthdays";

View File

@ -31,10 +31,11 @@ using ASC.Calendar.BusinessObjects;
using ASC.Core;
using ASC.Common.Utils;
using ASC.Web.Core.Calendars;
using System.Runtime.Serialization;
namespace ASC.Calendar.ExternalCalendars
{
[DataContract(Name = "sharedEventsCalendar", Namespace = "")]
public sealed class SharedEventsCalendar : BaseCalendar
{
public static string CalendarId { get { return "shared_events"; } }

View File

@ -37,6 +37,7 @@ using ASC.Common.Security;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using ASC.Common;
using System.Text.Json.Serialization;
namespace ASC.Calendar.Models
{
@ -45,6 +46,8 @@ namespace ASC.Calendar.Models
{
internal UserViewSettings _userViewSettings;
internal Guid _userId;
[System.Text.Json.Serialization.JsonIgnore]
public BaseCalendar UserCalendar { get; set; }
[DataMember(Name = "isSubscription", Order = 80)]
@ -100,7 +103,7 @@ namespace ASC.Calendar.Models
[DataMember(Name = "todos", Order = 160)]
public List<TodoWrapper> Todos { get; set; }
[DataMember(Name = "defaultAlert", Order = 160)]
[JsonPropertyName("defaultAlert")]
public EventAlertWrapper DefaultAlertType { get; set; }
[DataMember(Name = "timeZone", Order = 160)]

View File

@ -27,6 +27,8 @@
using System;
using System.Linq;
using System.Runtime.Serialization;
using System.Text.Json.Serialization;
using ASC.Calendar.BusinessObjects;
using ASC.Calendar.iCalParser;
using ASC.Common;
@ -59,7 +61,7 @@ namespace ASC.Calendar.Models
[DataMember(Name = "ics", Order = 60)]
public string Ics { get; set; }
[DataMember(Name = "timeZone", Order = 70)]
[JsonPropertyName("timeZone")]
public TimeZoneWrapper TimeZoneInfo { get; set; }
[DataMember(Name = "calendarName", Order = 80)]

View File

@ -37,6 +37,7 @@ using ASC.Web.Core.Users;
using ASC.Common;
using ASC.Calendar.iCalParser;
using ASC.Calendar.BusinessObjects;
using System.Text.Json.Serialization;
namespace ASC.Calendar.Models
{
@ -56,7 +57,7 @@ namespace ASC.Calendar.Models
[DataMember(Name = "canEdit", Order = 40)]
public bool CanEdit { get; set; }
[DataMember(Name = "selectedAction", Order = 50)]
[JsonPropertyName("selectedAction")]
public AccessOption SharingOption { get; set; }
public static PublicItemWrapper GetSample()
@ -191,113 +192,4 @@ namespace ASC.Calendar.Models
}
}
/*
[DataContract(Name ="publicItem")]
public class PublicItemWrapper : ASC.Web.Core.Calendars.SharingOptions.PublicItem
{
private Guid _owner;
private string _calendarId;
private string _eventId;
private bool _isCalendar;
public PublicItemWrapper( ASC.Web.Core.Calendars.SharingOptions.PublicItem publicItem, string calendartId, Guid owner)
{
base.Id = publicItem.Id;
base.IsGroup = publicItem.IsGroup;
_owner = owner;
_calendarId = calendartId;
_isCalendar = true;
}
public PublicItemWrapper(ASC.Web.Core.Calendars.SharingOptions.PublicItem publicItem, string calendarId, string eventId, Guid owner)
{
base.Id = publicItem.Id;
base.IsGroup = publicItem.IsGroup;
_owner = owner;
_calendarId = calendarId;
_eventId = eventId;
_isCalendar = false;
}
[DataMember(Name = "id", Order = 10)]
public string ItemId
{
get
{
return base.Id.ToString();
}
set{}
}
[DataMember(Name = "name", Order = 20)]
public string ItemName
{
get
{
if(this.IsGroup)
return CoreContext.UserManager.GetGroupInfo(base.Id).Name;
else
return CoreContext.UserManager.GetUsers(base.Id).DisplayUserName();
}
set{}
}
[DataMember(Name = "isGroup", Order = 30)]
public new bool IsGroup
{
get
{
return base.IsGroup;
}
set { }
}
[DataMember(Name = "canEdit", Order = 40)]
public bool CanEdit
{
get
{
return !base.Id.Equals(_owner);
}
set { }
}
[DataMember(Name = "selectedAction", Order = 50)]
public AccessOption SharingOption
{
get {
if (base.Id.Equals(_owner))
{
return AccessOption.OwnerOption;
}
var subject = IsGroup ? (ISubject)CoreContext.UserManager.GetGroupInfo(base.Id) : (ISubject)CoreContext.Authentication.GetAccountByID(base.Id);
int calId;
if (_isCalendar && int.TryParse(_calendarId,out calId))
{
var obj = new ASC.Calendar.BusinessObjects.Calendar() { Id = _calendarId };
if (SecurityContext.PermissionResolver.Check(subject, obj, null, CalendarAccessRights.FullAccessAction))
return AccessOption.FullAccessOption;
}
else if(!_isCalendar)
{
var obj = new ASC.Calendar.BusinessObjects.Event() { Id = _eventId, CalendarId = _calendarId};
if (SecurityContext.PermissionResolver.Check(subject, obj, null, CalendarAccessRights.FullAccessAction))
return AccessOption.FullAccessOption;
}
return AccessOption.ReadOption;
}
set { }
}
public static object GetSample()
{
return new { selectedAction = AccessOption.GetSample(), canEdit = true, isGroup = true,
name = "Everyone", id = "2fdfe577-3c26-4736-9df9-b5a683bb8520" };
}
}
*/
}

View File

@ -76,59 +76,4 @@ namespace ASC.Calendar.Models
return result;
}
}
/*
[DataContract(Name = "timeZone", Namespace = "")]
public class TimeZoneWrapper
{
private TimeZoneInfo _timeZone;
private TimeZoneConverter TimeZoneConverter;
public TimeZoneWrapper(TimeZoneInfo timeZone, TimeZoneConverter timeZoneConverter)
{
_timeZone = timeZone;
TimeZoneConverter = timeZoneConverter;
}
[DataMember(Name = "name", Order = 0)]
public string Name
{
get
{
return TimeZoneConverter.GetTimeZoneName(_timeZone);
}
set { }
}
[DataMember(Name = "id", Order = 0)]
public string Id
{
get
{
return _timeZone.Id;
}
set { }
}
[DataMember(Name = "offset", Order = 0)]
public int Offset
{
get
{
return (int)_timeZone.GetOffset().TotalMinutes;
}
set { }
}
public static TimeZoneWrapper GetSample()
{
return new TimeZoneWrapper { Offset = 0, Id = "UTC", Name = "UTC" };
}
}
*/
}