private Boolean AllowViewDiaryItem(long idItem, Int32 idUser) { Boolean iResponse = false; CommunityEventItem item = EventItemGet(idItem); litePerson person = Manager.GetLitePerson(idUser); if (item != null) { ModuleCommunityDiary modulePermission = GetPermissions(idUser, item.IdCommunityOwner); lm.Comol.Core.FileRepository.Domain.ModuleRepository moduleRepository = GetCoreModuleRepository(idUser, item.IdCommunityOwner); CoreItemPermission itemPermission = GetItemPermission(person, item, modulePermission, moduleRepository); iResponse = (itemPermission.AllowView); } return(iResponse); }
public void DeleteSelectedItems(List <long> idItems, Int32 idCommunity, String baseFilePath, String baseThumbnailPath, String unknownUser) { if (UserContext.isAnonymous) { View.DisplaySessionTimeout(View.IdCommunityDiary); } else { ModuleCommunityDiary module = Service.GetPermissions(UserContext.CurrentUserID, idCommunity); foreach (CommunityEventItem item in Service.EventItemsGet(idCommunity, idItems)) { DeleteItem(idCommunity, module, item, item.Id, baseFilePath, baseThumbnailPath); } LoadDiaryItems(idCommunity, unknownUser); } }
public void DeleteCommunityDiary(Int32 idCommunity, String baseFilePath, String baseThumbnailPath, String unknownUser) { if (UserContext.isAnonymous) { View.DisplaySessionTimeout(View.IdCommunityDiary); } else { ModuleCommunityDiary module = Service.GetPermissions(UserContext.CurrentUserID, idCommunity); if (module.Administration) { Service.PhisicalDeleteCommunityDiary(idCommunity, baseFilePath, baseThumbnailPath); } LoadDiaryItems(idCommunity, unknownUser); } }
public void EditItemVisibility(long idItem, Int32 idCommunity, String unknownUser) { if (UserContext.isAnonymous) { View.DisplaySessionTimeout(idCommunity); } else { ModuleCommunityDiary module = Service.GetPermissions(UserContext.CurrentUserID, idCommunity); CommunityEventItem item = Service.EventItemGet(idItem); if (item != null && module.Edit) { Service.EditEventItemVisibility(item); } LoadDiaryItems(idCommunity, unknownUser); } }
public void EditFileItemVisibility(long idItem, long idAttachment, Int32 idCommunity, Boolean visibleForModule, Boolean visibleForRepository, String unknownUser) { if (UserContext.isAnonymous) { View.DisplaySessionTimeout(idCommunity, idItem); } else { ModuleCommunityDiary module = Service.GetPermissions(UserContext.CurrentUserID, idCommunity); CommunityEventItem item = Service.EventItemGet(idItem); EventItemFile attachment = Service.EventItemGetAttachment(idAttachment); if (item != null && attachment != null) { Service.AttachmentEditVisibility(item, attachment, visibleForModule, visibleForRepository); } LoadDiaryItems(idCommunity, unknownUser); } }
public ModuleCommunityDiary GetPermissions(Int32 idPerson, Int32 idCommunity) { ModuleCommunityDiary module = new ModuleCommunityDiary(); if (idCommunity == 0) { litePerson person = Manager.GetLitePerson(idPerson); if (person != null && person.Id > 0) { module = ModuleCommunityDiary.CreatePortalmodule(person.TypeID); } } else { module = new ModuleCommunityDiary(Manager.GetModulePermission(idPerson, idCommunity, ServiceModuleID())); } return(module); }
private Boolean AllowEditMetadata(Int32 idUser, Int32 idRole, ModuleObject source, ModuleObject destination) { Boolean iResponse = false; if (source.ObjectTypeID == (int)ModuleCommunityDiary.ObjectType.DiaryItemLinkedFile) { litePerson person = Manager.GetLitePerson(idUser); EventItemFile attachment = Manager.Get <EventItemFile>(source.ObjectLongID); if (attachment != null && attachment.Link != null && attachment.Item != null && source.ObjectLongID == attachment.Id) { ModuleCommunityDiary modulePermission = GetPermissions(idUser, attachment.IdCommunity); lm.Comol.Core.FileRepository.Domain.ModuleRepository moduleRepository = GetCoreModuleRepository(idUser, attachment.IdCommunity); CoreItemPermission itemPermission = GetItemPermission(person, EventItemGet(attachment.IdItemOwner), modulePermission, moduleRepository); iResponse = ((attachment.Item.Type == Core.FileRepository.Domain.ItemType.ScormPackage || attachment.Item.Type == Core.FileRepository.Domain.ItemType.Multimedia) && (attachment.Item.Availability == Core.FileRepository.Domain.ItemAvailability.available || attachment.Item.Availability == Core.FileRepository.Domain.ItemAvailability.waitingsettings) && ((attachment.Item.IsInternal && itemPermission.AllowEdit) || (!attachment.Item.IsInternal && (moduleRepository.Administration || moduleRepository.EditOthersFiles || (moduleRepository.EditMyFiles && attachment.Item.IdOwner == person.Id))))); } } return(iResponse); }
private Boolean AllowDownloadFileLinkedToItem(long idAttachment, Int32 idUser) { Boolean iResponse = false; EventItemFile attachment = Manager.Get <EventItemFile>(idAttachment); litePerson person = Manager.GetLitePerson(idUser); if (attachment != null && attachment.Item != null && attachment.Link != null) { CommunityEventItem item = EventItemGet(attachment.IdItemOwner); if (item != null) { ModuleCommunityDiary modulePermission = GetPermissions(idUser, attachment.IdCommunity); lm.Comol.Core.FileRepository.Domain.ModuleRepository moduleRepository = GetCoreModuleRepository(idUser, attachment.IdCommunity); CoreItemPermission itemPermission = GetItemPermission(person, EventItemGet(attachment.IdItemOwner), modulePermission, moduleRepository); iResponse = AllowViewFileFromLink(modulePermission, itemPermission, attachment, person) && (attachment.Item.IsDownloadable || (attachment.Item.IdOwner == idUser && attachment.Item.Availability != Core.FileRepository.Domain.ItemAvailability.notavailable)); } } return(iResponse); }
public void VirtualDeleteUndelete(long idItem, long idAttachment, Int32 idCommunity, String unknownUser, Boolean virtualDelete) { if (UserContext.isAnonymous) { View.DisplaySessionTimeout(idCommunity, idItem); } else { litePerson person = CurrentManager.GetLitePerson(UserContext.CurrentUserID); if (person == null || person.Id == 0) { View.DisplaySessionTimeout(idCommunity, idItem); } else { ModuleCommunityDiary module = Service.GetPermissions(UserContext.CurrentUserID, idCommunity); CommunityEventItem item = Service.EventItemGet(idItem); EventItemFile attachment = Service.EventItemGetAttachment(idAttachment); if (item != null && attachment != null) { if (virtualDelete) { Service.AttachmentVirtualDelete(idAttachment); } else { Service.AttachmentVirtualUndelete(idAttachment); } ReloadAttachments(person, item, module, View.RepositoryIdentifier, unknownUser); } else if (item != null) { ReloadAttachments(person, item, module, View.RepositoryIdentifier, unknownUser); } else { View.LoadAttachments(null); } } } }
public List <RepositoryAttachmentUploadActions> GetAvailableUploadActions(ModuleCommunityDiary modulePermission, ModuleRepository repositoryPermissions) { List <RepositoryAttachmentUploadActions> actions = new List <RepositoryAttachmentUploadActions>(); Boolean isModuleAdministrator = modulePermission.Administration | modulePermission.UploadFile | modulePermission.Edit; if (isModuleAdministrator) { actions.Add(RepositoryAttachmentUploadActions.uploadtomoduleitem); if (repositoryPermissions != null) { if (repositoryPermissions.Administration || repositoryPermissions.UploadFile) { actions.Add(RepositoryAttachmentUploadActions.uploadtomoduleitemandcommunity); } if (repositoryPermissions.ViewItemsList) { actions.Add(RepositoryAttachmentUploadActions.linkfromcommunity); } } } return(actions); }
public void LoadDiaryItems(ModuleCommunityDiary module, Int32 idCommunity, Int32 idModule, String unknownUser) { if (UserContext.isAnonymous) { View.DisplaySessionTimeout(idCommunity); } else { if (idCommunity <= 0) { View.ShowUnkownCommunityDiary(idCommunity, idModule); } else { if (module == null) { module = new ModuleCommunityDiary(); } InternalLoadDiaryItems(module, idCommunity, idModule, unknownUser); } } }
private List <StandardActionType> GetAllowedStandardActionForFile(int idUser, ModuleObject source, ModuleObject destination) { List <StandardActionType> actions = new List <StandardActionType>(); litePerson person = Manager.GetLitePerson(idUser); EventItemFile attachment = Manager.Get <EventItemFile>(source.ObjectLongID); if (attachment != null && attachment.Link != null && source.ObjectLongID == attachment.Id) { ModuleCommunityDiary modulePermission = GetPermissions(idUser, attachment.IdCommunity); lm.Comol.Core.FileRepository.Domain.ModuleRepository moduleRepository = GetCoreModuleRepository(idUser, attachment.IdCommunity); CoreItemPermission itemPermission = GetItemPermission(person, EventItemGet(attachment.IdItemOwner), modulePermission, moduleRepository); if (attachment.Item != null) { Boolean isMultimedia = attachment.Item.Type == Core.FileRepository.Domain.ItemType.Multimedia; Boolean isScorm = attachment.Item.Type == Core.FileRepository.Domain.ItemType.ScormPackage; Boolean isInternal = attachment.Item.IsInternal; if ((isScorm || isMultimedia) && (attachment.Item.Availability == Core.FileRepository.Domain.ItemAvailability.available || attachment.Item.Availability == Core.FileRepository.Domain.ItemAvailability.waitingsettings) && ((isInternal && itemPermission.AllowEdit) || (!isInternal && (moduleRepository.Administration || moduleRepository.EditOthersFiles || (moduleRepository.EditMyFiles && attachment.Item.IdOwner == person.Id))))) { actions.Add(StandardActionType.EditMetadata); } if (AllowViewFileFromLink(modulePermission, itemPermission, attachment, person)) { actions.Add(StandardActionType.Play); if (isScorm) { actions.Add(StandardActionType.ViewPersonalStatistics); } } if ((isScorm && attachment.Item.Availability == Core.FileRepository.Domain.ItemAvailability.available) && ((isInternal && itemPermission.AllowEdit) || (!isInternal && (moduleRepository.Administration || moduleRepository.EditOthersFiles || (moduleRepository.EditMyFiles && attachment.Item.IdOwner == person.Id))))) { actions.Add(StandardActionType.ViewAdvancedStatistics); } } } return(actions); }
private dtoDiaryItem CreateDtoDiaryItem(litePerson person, CommunityEventItem item, Boolean viewAlsoDeleted, ModuleCommunityDiary module, lm.Comol.Core.FileRepository.Domain.ModuleRepository moduleRepository, ref int lessionID, List <lm.Comol.Core.DomainModel.Repository.RepositoryAttachmentUploadActions> actions, lm.Comol.Core.DomainModel.Repository.RepositoryAttachmentUploadActions dAction, String unknownUser) { dtoDiaryItem dtoItem = new dtoDiaryItem(); dtoItem.CommunityId = item.IdCommunityOwner; DescriptionEventItem dObject = EventItemGetDescriptionObject(item.Id); if (dObject != null) { dtoItem.Description = dObject.Description; dtoItem.DescriptionPlain = dObject.DescriptionPlain; } else { dtoItem.Description = ""; dtoItem.DescriptionPlain = ""; } dtoItem.EventItem = item; dtoItem.Permission = GetItemPermission(person, item, module, moduleRepository); dtoItem.UploadActions = actions; dtoItem.DefaultUploadAction = dAction; dtoItem.Attachments = AttachmentsGet(person, item, viewAlsoDeleted, dtoItem.Permission, moduleRepository, unknownUser).Where(a => a.Attachment.File != null && a.Attachment.File.IsValid).ToList(); dtoItem.Id = item.Id; dtoItem.IdEvent = (item.EventOwner != null ? item.EventOwner.Id : 0); dtoItem.LessonNumber = lessionID; lessionID += 1; return(dtoItem); }
public CoreItemPermission GetItemPermission(CommunityEventItem item, ModuleCommunityDiary modulePermissions, lm.Comol.Core.FileRepository.Domain.ModuleRepository moduleRepository) { litePerson person = Manager.GetLitePerson(UC.CurrentUserID); return(GetItemPermission(person, item, modulePermissions, moduleRepository)); }
public CoreItemPermission GetItemPermission(litePerson person, CommunityEventItem item, ModuleCommunityDiary modulePermissions, lm.Comol.Core.FileRepository.Domain.ModuleRepository moduleRepository) { CoreItemPermission iResponse = new CoreItemPermission(); if (item != null) { Boolean AllowInternalEdit = item.AllowEdit; iResponse.AllowViewFiles = (modulePermissions.ViewDiaryItems && (item.IsVisible || (item.IsVisible == false && item.Owner != null && item.Owner == person))) || modulePermissions.Administration; iResponse.AllowAddFiles = AllowInternalEdit && ((item.Owner != null && item.Owner == person) || modulePermissions.Administration || modulePermissions.UploadFile); iResponse.AllowDelete = AllowInternalEdit && ((modulePermissions.DeleteItem && item.Owner != null && item.Owner == person) || modulePermissions.Administration); iResponse.AllowEdit = AllowInternalEdit && ((modulePermissions.DeleteItem && item.Owner != null && item.Owner == person) || modulePermissions.Administration); iResponse.AllowUnDelete = AllowInternalEdit && ((modulePermissions.DeleteItem && item.Owner != null && item.Owner == person) || modulePermissions.Administration); } iResponse.AllowView = modulePermissions.Administration || modulePermissions.ViewDiaryItems; iResponse.AllowVirtualDelete = iResponse.AllowDelete; iResponse.AllowViewStatistics = iResponse.AllowViewFiles; iResponse.AllowFilePublish = (moduleRepository != null && (moduleRepository.Administration || moduleRepository.UploadFile)); return(iResponse); }
public void InitView(Int32 idCommunity, long idItem, String unknownUser, Boolean isForAdd = false) { idCommunity = (idCommunity == 0 ? UserContext.CurrentCommunityID : idCommunity); if (!UserContext.isAnonymous) { litePerson person = CurrentManager.GetLitePerson(UserContext.CurrentUserID); CommunityEventItem item = (idItem > 0 ? Service.EventItemGet(idItem) :null); if (item != null && idCommunity != item.IdCommunityOwner) { idCommunity = item.IdCommunityOwner; } View.IdCommunityDiary = idCommunity; View.IdModuleCommunityDiary = GetIdModule(); View.IdModuleRepository = ServiceRepository.GetIdModule(); liteCommunity community = CurrentManager.GetLiteCommunity(idCommunity); if ((community == null && idCommunity > 0) || (!isForAdd && idItem == 0)) { View.NoPermission(idCommunity, GetIdModule()); } else { if (item == null && !isForAdd) { View.ShowNoItemWithThisID(idCommunity, GetIdModule(), idItem); } else { long idEvent = ((item != null && item.EventOwner != null)? item.EventOwner.Id : 0); View.CurrentIdItem = idItem; View.CurrentIdEvent = idEvent; ModuleCommunityDiary module = Service.GetPermissions(UserContext.CurrentUserID, idCommunity); if ((module.AddItem && isForAdd) || (module.Administration || module.Edit)) { String description = ""; if (idItem == 0) { item = new CommunityEventItem(); item.Title = ""; item.Note = ""; item.Owner = CurrentManager.GetLitePerson(UserContext.CurrentUserID); item.ModifiedOn = DateTime.Now; item.StartDate = new DateTime(item.ModifiedOn.Year, item.ModifiedOn.Month, item.ModifiedOn.Day, 8, 0, 0); item.EndDate = new DateTime(item.ModifiedOn.Year, item.ModifiedOn.Month, item.ModifiedOn.Day, 11, 0, 0); item.IsVisible = true; item.Link = ""; item.Place = ""; item.Title = ""; item.IdCommunityOwner = idCommunity; item.ShowDateInfo = true; } else { description = Service.EventItemGetDescription(item); } lm.Comol.Core.FileRepository.Domain.RepositoryIdentifier identifier = lm.Comol.Core.FileRepository.Domain.RepositoryIdentifier.Create((idCommunity > 0 ? lm.Comol.Core.FileRepository.Domain.RepositoryType.Community : lm.Comol.Core.FileRepository.Domain.RepositoryType.Portal), idCommunity); View.RepositoryIdentifier = identifier; String communityName = (community != null ? community.Name : View.GetPortalNameTranslation()); List <dtoAttachmentItem> attachments = null; if (idItem > 0) { lm.Comol.Core.FileRepository.Domain.ModuleRepository moduleRepository = ServiceRepository.GetPermissions(identifier, UserContext.CurrentUserID); List <lm.Comol.Core.DomainModel.Repository.RepositoryAttachmentUploadActions> availableActions = Service.GetAvailableUploadActions(module, moduleRepository); lm.Comol.Core.DomainModel.Repository.RepositoryAttachmentUploadActions dAction = (availableActions == null || !availableActions.Any()) ? lm.Comol.Core.DomainModel.Repository.RepositoryAttachmentUploadActions.none : availableActions.FirstOrDefault(); View.InitializeAttachmentsControl(idEvent, idItem, availableActions, dAction); attachments = Service.AttachmentsGet(person, item, true, Service.GetItemPermission(person, item, module, moduleRepository), moduleRepository, unknownUser); View.AllowEdit = true; View.AllowFileManagement = availableActions.Any(); } else { View.AllowEdit = module.Administration || module.AddItem; View.AllowFileManagement = false; } View.LoadItem(item, description, communityName, attachments); } else { View.NoPermission(idCommunity, GetIdModule()); } } View.SetBackToDiary(idCommunity, idItem); } } else { View.DisplaySessionTimeout(idCommunity, idItem); } }
public List <dtoDiaryItem> GetDtoDiaryItems(int idCommunity, Boolean ascendingLesson, ModuleCommunityDiary module, lm.Comol.Core.FileRepository.Domain.ModuleRepository moduleRepository, Boolean allVisibleItems, List <lm.Comol.Core.DomainModel.Repository.RepositoryAttachmentUploadActions> actions, lm.Comol.Core.DomainModel.Repository.RepositoryAttachmentUploadActions dAction, String unknownUser) { List <dtoDiaryItem> items = new List <dtoDiaryItem>(); litePerson person = Manager.GetLitePerson(UC.CurrentUserID); CommunityEventType eventType = GetDiaryEventType(); if (idCommunity > 0 && person != null) { int lessnoNumber = 1; items = (from item in CommunityEventItemsQuery(idCommunity, eventType, person, allVisibleItems).ToList() select CreateDtoDiaryItem(person, item, allVisibleItems, module, moduleRepository, ref lessnoNumber, actions, dAction, unknownUser)).ToList(); if (!ascendingLesson) { items = items.OrderByDescending(i => i.LessonNumber).ToList(); } } return(items); }