public dtoDisplayRepositoryItem(dtoRepositoryItem item) : base(item) { Permissions = new ItemPermission(); Children = new List <dtoDisplayRepositoryItem>(); Identifier = new dtoItemIdentifier(); }
private ItemPermission CreatePermission(dtoRepositoryItem item, Int32 idPerson, liteRepositorySettings settings, ModuleRepository modulePermissions, Boolean forAdmin = false) { ItemPermission permissions = new ItemPermission(); Boolean isOwner = (item.IdOwner == idPerson); Boolean manageOthers = (modulePermissions.Administration || modulePermissions.ManageItems || modulePermissions.EditOthersFiles); if (IsUserAvailable) { IsUserAvailable = manageOthers || (((isOwner && item.IsVisible) || item.IsVisible) && (item.Status == ItemStatus.Active || isOwner)); } item.AllowUpload = (!item.IsFile && item.FolderType == Domain.FolderType.standard && (item.AllowUpload || modulePermissions.Administration || modulePermissions.ManageItems || isOwner)); permissions.AllowUpload = item.AllowUpload; switch (item.Type) { case ItemType.File: permissions.Unzip = (item.Availability == ItemAvailability.available) && ((item.Extension == ".zip") && (manageOthers || (modulePermissions.EditMyFiles && isOwner) || (modulePermissions.UploadFile && isOwner))); permissions.Zip = (item.Availability == ItemAvailability.available) && (manageOthers || modulePermissions.DownloadOrPlay || (modulePermissions.EditMyFiles && isOwner) || (modulePermissions.UploadFile && isOwner)); break; case ItemType.Folder: break; case ItemType.Multimedia: case ItemType.ScormPackage: permissions.CanEditSettings = ((item.Deleted == DomainModel.BaseStatusDeleted.None && manageOthers || (modulePermissions.EditMyFiles && isOwner) || (modulePermissions.UploadFile && isOwner && item.Availability == ItemAvailability.available))); permissions.EditSettings = IsAvailableByType(item.Type, item.Availability) && ((item.Deleted == DomainModel.BaseStatusDeleted.None && manageOthers || (modulePermissions.EditMyFiles && isOwner) || (modulePermissions.UploadFile && isOwner && item.Availability == ItemAvailability.available))); permissions.Zip = (item.Availability != ItemAvailability.notavailable) && (manageOthers || modulePermissions.DownloadOrPlay || (modulePermissions.EditMyFiles && isOwner) || (modulePermissions.UploadFile && isOwner)); break; case ItemType.Link: break; } permissions.Edit = manageOthers || (modulePermissions.EditMyFiles && isOwner) || (modulePermissions.UploadFile && isOwner); permissions.ViewMyStatistics = ((item.Deleted == DomainModel.BaseStatusDeleted.None && item.Type != ItemType.Link && item.Type != ItemType.Folder && item.Type != ItemType.File) && !(manageOthers || (modulePermissions.EditMyFiles && isOwner && IsAvailableByType(item.Type, item.Availability)) || (modulePermissions.UploadFile && isOwner && IsAvailableByType(item.Type, item.Availability)))); permissions.ViewOtherStatistics = (item.Deleted == DomainModel.BaseStatusDeleted.None && item.Type != ItemType.Link && item.Type != ItemType.Folder && item.Type != ItemType.File) && (manageOthers || (modulePermissions.EditMyFiles && isOwner && IsAvailableByType(item.Type, item.Availability)) || (modulePermissions.UploadFile && isOwner && IsAvailableByType(item.Type, item.Availability))); permissions.VersioningAvailable = (item.Availability != ItemAvailability.notavailable) && ((item.Deleted == DomainModel.BaseStatusDeleted.None && item.Type != ItemType.Folder && item.Type != ItemType.Link && settings.AllowVersioning)); permissions.ViewPermission = permissions.Edit; permissions.EditPermission = manageOthers || (modulePermissions.EditMyFiles && isOwner) || (modulePermissions.UploadFile && isOwner && item.Availability != ItemAvailability.available); permissions.Delete = (item.Deleted != DomainModel.BaseStatusDeleted.None && (manageOthers || (modulePermissions.DeleteMyFiles && isOwner))); permissions.UnDelete = (item.Deleted != DomainModel.BaseStatusDeleted.None && (manageOthers || (modulePermissions.DeleteMyFiles && isOwner))); permissions.VirtualDelete = (item.Deleted == DomainModel.BaseStatusDeleted.None && (manageOthers || (modulePermissions.DeleteMyFiles && isOwner))); permissions.Download = (item.Availability != ItemAvailability.notavailable) && (manageOthers || (item.IsDownloadable && item.Type != ItemType.Folder && permissions.Download)); permissions.Play = IsAvailableByType(item.Type, item.Availability) && (item.Type == ItemType.Multimedia || item.Type == ItemType.ScormPackage) && ((manageOthers || permissions.Download) && item.Type != ItemType.Folder); permissions.Preview = IsAvailableByType(item.Type, item.Availability) && (item.DisplayMode == Domain.DisplayMode.inModal || item.DisplayMode == Domain.DisplayMode.downloadOrPlayOrModal); permissions.AllowSelection = (item.Availability != ItemAvailability.notavailable && (isOwner || manageOthers || item.IsDownloadable || item.Type == ItemType.Link || item.Type == ItemType.Folder)); permissions.Hide = (item.Deleted == DomainModel.BaseStatusDeleted.None && permissions.Edit && item.IsVisible); permissions.Show = (item.Deleted == DomainModel.BaseStatusDeleted.None && permissions.Edit && !item.IsVisible); return(permissions); }
public dtoDisplayObjectRepositoryItem(liteModuleLink link, liteRepositoryItem item, liteRepositoryItemVersion version) { LinkedBy = ""; IdLinkedBy = 0; Permissions = new ItemPermission(); Link = link; Item = item; Version = version; if (version != null) { Description = version.Description; Name = version.Name; DisplayName = version.DisplayName; IdCreatedBy = version.IdCreatedBy; CreatedOn = version.CreatedOn; IdVersion = version.Id; Type = version.Type; IdItem = item.Id; DisplayMode = version.DisplayMode; Url = version.Url; Extension = version.Extension; AutoThumbnail = version.AutoThumbnail; IdVersion = version.Id; UniqueId = item.UniqueId; UniqueIdVersion = version.UniqueIdVersion; IsDownlodable = item.IsDownloadable; } else if (item != null) { Description = item.Description; Name = item.Name; DisplayName = item.DisplayName; IdCreatedBy = item.IdCreatedBy; CreatedOn = item.CreatedOn; IdVersion = 0; UniqueIdVersion = Guid.Empty; Type = item.Type; IdItem = item.Id; DisplayMode = item.DisplayMode; Url = item.Url; Extension = item.Extension; AutoThumbnail = item.AutoThumbnail; IsDownlodable = item.IsDownloadable; } Availability = (Version != null ? Version.Availability : (Item != null ? Item.Availability : ItemAvailability.notavailable)); Size = FolderSizeItem.FormatBytes((Version != null ? Version.Size : (Item != null ? Item.Size :0))); }