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);
     }
 }
Beispiel #6
0
        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);
        }
Beispiel #9
0
        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);
        }
Beispiel #13
0
        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);
        }
Beispiel #14
0
        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));
        }
Beispiel #15
0
        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);
        }
Beispiel #16
0
        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);
            }
        }
Beispiel #17
0
        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);
        }