示例#1
0
        private List <int> OldGetItemRepositoryMembersID(int CommunityID, long ItemID, int Permission)
        {
            List <int> iResponse = new List <int>();

            using (ISession session = NHSessionHelper.GetSession())
            {
                DataContext dc = new DataContext(session);
                try
                {
                    CommunityFile oItem = dc.GetById <CommunityFile>(ItemID);
                    if (oItem != null && ((CommunityID == 0 && oItem.CommunityOwner == null) || (CommunityID > 0 && oItem.CommunityOwner != null)))
                    {
                        List <int> AssignedCommunity = new List <int>();
                        AssignedCommunity = (from ca in session.Linq <CommunityFileCommunityAssignment>() where ca.AssignedTo == oItem.CommunityOwner && ca.File == oItem && ca.Inherited select ca.AssignedTo.Id).ToList <int>();
                        if (AssignedCommunity.Count > 0)
                        {
                            iResponse = GetPermissionMembersID(session, CommunityID, Services_File.Codex, Permission);
                        }
                        else
                        {
                            List <int> AssignedUsers      = new List <int>();
                            List <int> AssignedRoles      = new List <int>();
                            List <int> AssignedUsersTypes = new List <int>();
                            if (oItem.CommunityOwner == null)
                            {
                                AssignedUsersTypes = (from ca in session.Linq <CommunityFilePersonTypeAssignment>() where ca.File == oItem && ca.Inherited select ca.AssignedTo).ToList <int>();
                                if (AssignedUsersTypes.Count > 0)
                                {
                                    iResponse.AddRange(GetByRolePermissionMembersID(session, 0, Services_File.Codex, AssignedUsersTypes, Permission));
                                }
                            }
                            else
                            {
                                AssignedRoles = (from ca in session.Linq <CommunityFileRoleAssignment>() where ca.File == oItem && ca.Inherited select ca.AssignedTo.Id).ToList <int>();
                                if (AssignedRoles.Count > 0)
                                {
                                    iResponse.AddRange(GetByRolePermissionMembersID(session, oItem.CommunityOwner.Id, Services_File.Codex, AssignedRoles, Permission));
                                }
                            }
                            AssignedUsers = (from ca in session.Linq <CommunityFilePersonAssignment>() where ca.File == oItem && !iResponse.Contains <int>(ca.AssignedTo.Id) select ca.AssignedTo.Id).ToList <int>();
                            AssignedUsers = EvaluateRepositoryUsers(session, AssignedUsers, oItem.FolderId, oItem.CommunityOwner, Services_File.Codex, Permission);
                            if (AssignedUsers.Count > 0)
                            {
                                iResponse.AddRange(AssignedUsers);
                            }
                        }
                        if (PermissionHelper.CheckPermissionSoft((long)(Services_File.Base2Permission.AdminService) | (int)(Services_File.Base2Permission.Moderate), Permission))
                        {
                            List <int> AvailableMembersID = GetPermissionMembersID(session, CommunityID, Services_File.Codex, (int)(Services_File.Base2Permission.AdminService) | (int)(Services_File.Base2Permission.Moderate));
                            iResponse.AddRange((from Id in AvailableMembersID where iResponse.Contains(Id) == false select Id).ToList <int>());
                        }
                    }
                }
                catch (Exception ex)
                {
                }
            }
            return((from UserID in iResponse select UserID).Distinct().ToList <int>());
        }
示例#2
0
        public bool HasPermissionToUploadIntoRepositoryFolder(long folderId, Person person, CoreModuleRepository module)
        {
            bool iResponse = module.Administration || module.UploadFile;

            if (!iResponse)
            {
                try
                {
                    Manager.BeginTransaction();
                    CommunityFile oFolder = Manager.Get <CommunityFile>(folderId);
                    if ((oFolder != null))
                    {
                        long AssignedPermission = 0;

                        Community community = oFolder.CommunityOwner;
                        if (community == null)
                        {
                            AssignedPermission = (from fa in Manager.Linq <CommunityFilePersonTypeAssignment>() where fa.File == oFolder && fa.Inherited && fa.AssignedTo == person.TypeID && (fa.File.isVisible || (!fa.File.isVisible && fa.File.Owner == person)) && fa.Deny == false select fa.Permission).FirstOrDefault();
                        }
                        else
                        {
                            Role oRole = (from s in Manager.Linq <Subscription>() where s.Community == community && s.Person == person && s.Accepted && s.Enabled select(Role) s.Role).FirstOrDefault();

                            AssignedPermission = (from fa in Manager.Linq <CommunityFileRoleAssignment>() where fa.File == oFolder && fa.AssignedTo == oRole && fa.Inherited && (fa.File.isVisible || (!fa.File.isVisible && fa.File.Owner == person)) && fa.Deny == false select fa.Permission).FirstOrDefault();
                        }
                        if (!((AssignedPermission & (long)CoreModuleRepository.Base2Permission.UploadFile) > 0))
                        {
                            AssignedPermission = AssignedPermission | (from fa in Manager.Linq <CommunityFileCommunityAssignment>() where fa.File == oFolder && fa.AssignedTo == community && fa.Inherited && (fa.File.isVisible || (!fa.File.isVisible && fa.File.Owner == person)) && fa.Deny == false select fa.Permission).FirstOrDefault();
                        }

                        if (!((AssignedPermission & (long)CoreModuleRepository.Base2Permission.UploadFile) > 0))
                        {
                            AssignedPermission = AssignedPermission | (from fa in Manager.Linq <CommunityFilePersonAssignment>() where fa.File == oFolder && fa.AssignedTo == person && fa.Inherited && (fa.File.isVisible || (!fa.File.isVisible && fa.File.Owner == person)) && fa.Deny == false select fa.Permission).FirstOrDefault();
                        }
                        iResponse = ((AssignedPermission & (long)CoreModuleRepository.Base2Permission.UploadFile) > 0);
                    }
                    Manager.Commit();
                }
                catch (Exception ex)
                {
                    if (Manager.IsInTransaction())
                    {
                        Manager.RollBack();
                    }
                }
            }
            return(iResponse);
        }
        public void TryToPublish(long IdDestinationFolder)
        {
            List <long> IdLinks = View.SelectedItemFileLinksId;

            if (IdLinks.Count == 0)
            {
                View.ShowWizardStep(WizardStep.FileSelector);
            }
            else
            {
                List <BaseCommunityFile> existingFiles = new List <BaseCommunityFile>();
                List <BaseCommunityFile> internalFiles = Service.GetModuleFiles(View.SelectedItemFilesId);

                Community community = CurrentManager.GetCommunity(View.SelectedCommunityID);
                foreach (ModuleInternalFile moduleFile in internalFiles)
                {
                    CommunityFile repositoryFile = Service.FindDuplicatedRepositoryItem(community, IdDestinationFolder, moduleFile);
                    if (repositoryFile != null)
                    {
                        existingFiles.Add(moduleFile);
                    }
                }
                List <dtoFileExist <long> > filesToChange = new List <dtoFileExist <long> >();
                if (existingFiles.Count > 0)
                {
                    filesToChange = (from ef in existingFiles
                                     select new dtoFileExist <long> {
                        Id = ef.Id, ExistFileName = ef.DisplayName, Extension = ef.Extension, ProposedFileName = Service.ProposedRepositoryItemName(ef, community, IdDestinationFolder)
                    }).ToList();
                    View.LoadDuplicates(filesToChange);
                    View.ShowWizardStep(WizardStep.RenamedFileList);
                }
                else
                {
                    View.LoadDuplicates(filesToChange);
                    LoadStepSummary(internalFiles, new List <dtoModuleFileToPublish>());
                    View.ShowWizardStep(WizardStep.ConfirmPublish);
                }
            }
        }
示例#4
0
        public string GetFolderName_OLD(long IdFolder)
        {
            String PathName = "";

            if (IdFolder > 0)
            {
                CommunityFile folder = (from f in Manager.GetIQ <CommunityFile>() where f.Id == IdFolder && !f.isFile select new CommunityFile()
                {
                    Id = f.Id, Name = f.Name
                }).Skip(0).Take(1).ToList().FirstOrDefault();
                if (folder != null)
                {
                    PathName = folder.Name;
                }
            }
            else
            {
                PathName = "/";
            }

            return(PathName);
        }
示例#5
0
        public dtoUploadedFile AddFileToRepository(CommunityFile file, String savedFile, String communityPath)
        {
            dtoUploadedFile result = new dtoUploadedFile(file, ItemRepositoryStatus.CreationError);

            if (file != null && lm.Comol.Core.File.Exists.File(savedFile))
            {
                CommunityFile        savedItem   = null;
                Int32                idCommunity = View.IdCommunityRepository;
                Community            community   = CurrentManager.GetCommunity(idCommunity);
                ItemRepositoryStatus status      = ItemRepositoryStatus.None;

                if ((idCommunity > 0 && community != null) || (community == null && idCommunity == 0))
                {
                    file.Owner          = CurrentManager.GetPerson(UserContext.CurrentUserID);
                    file.CommunityOwner = community;
                    file.CreatedOn      = DateTime.Now;
                    file.ModifiedOn     = file.CreatedOn;
                    file.ModifiedBy     = file.Owner;

                    if (View.DownlodableByCommunity)
                    {
                        savedItem = Service.AddFile(file, communityPath, (long)CoreModuleRepository.Base2Permission.DownloadFile, ref status);
                    }
                    else
                    {
                        savedItem = Service.AddFile(file, file.Owner, communityPath, (long)CoreModuleRepository.Base2Permission.DownloadFile, ref status);
                    }
                    if (savedItem != null)
                    {
                        result.Link = Service.CreateModuleActionLink(savedItem, (Int32)CoreModuleRepository.Base2Permission.DownloadFile, Service.ServiceModuleID());
                    }
                }
                result.Status = status;
            }
            return(result);
        }
示例#6
0
        public bool HasPermissionToSeeRepositoryItem(long ItemId, bool ShowHiddenItems, bool AdminPurpose, Person oPerson)
        {
            Boolean iResponse = false;

            try
            {
                Manager.BeginTransaction();
                CommunityFile oCommunityFile = Manager.Get <CommunityFile>(ItemId);
                if ((oCommunityFile != null))
                {
                    if (AdminPurpose)
                    {
                        iResponse = ShowHiddenItems || (oCommunityFile.isVisible) || oCommunityFile.Owner == oPerson;
                    }
                    else
                    {
                        bool HasPersonAssignment    = false;
                        bool HasRoleAssignment      = false;
                        bool HasCommunityAssignment = false;
                        bool HasDenyPerson          = false;
                        bool HasDenyRole            = false;
                        bool HasDenyCommunity       = false;

                        if (oCommunityFile.CommunityOwner == null)
                        {
                            var QueryRole = (from fa in Manager.Linq <CommunityFilePersonTypeAssignment>() where fa.File == oCommunityFile && fa.Inherited && fa.AssignedTo == oPerson.TypeID && (ShowHiddenItems || fa.File.isVisible || (!fa.File.isVisible && fa.File.Owner == oPerson)) select fa);
                            HasRoleAssignment = (from CommunityFilePersonTypeAssignment q in QueryRole where !q.Deny select q).Any();
                            HasDenyRole       = (from CommunityFilePersonTypeAssignment q in QueryRole where q.Deny select q).Any();
                        }
                        else
                        {
                            Role oRole = (from s in Manager.Linq <Subscription>() where s.Community == oCommunityFile.CommunityOwner && s.Person == oPerson && s.Accepted && s.Enabled select(Role) s.Role).FirstOrDefault();

                            var QueryRole = (from fa in Manager.Linq <CommunityFileRoleAssignment>() where fa.File == oCommunityFile && fa.AssignedTo == oRole && fa.Inherited && (ShowHiddenItems || fa.File.isVisible || (!fa.File.isVisible && fa.File.Owner == oPerson)) select fa);
                            HasRoleAssignment = (from q in QueryRole where !q.Deny select q).Any();
                            HasDenyRole       = (from q in QueryRole where q.Deny select q).Any();
                        }
                        var QueryCommunity = (from fa in Manager.Linq <CommunityFileCommunityAssignment>() where fa.File == oCommunityFile && fa.AssignedTo == oCommunityFile.CommunityOwner && fa.Inherited && (ShowHiddenItems || fa.File.isVisible || (!fa.File.isVisible && fa.File.Owner == oPerson)) select fa);

                        HasCommunityAssignment = (from q in QueryCommunity where !q.Deny select q).Any();
                        HasDenyCommunity       = (from q in QueryCommunity where q.Deny select q).Any();

                        var QueryPerson = (from fa in Manager.Linq <CommunityFilePersonAssignment>() where fa.File == oCommunityFile && fa.AssignedTo == oPerson && fa.Inherited && (ShowHiddenItems || fa.File.isVisible || (!fa.File.isVisible && fa.File.Owner == oPerson)) select fa);
                        HasPersonAssignment = (from q in QueryPerson where !q.Deny select q).Any();
                        HasDenyPerson       = (from q in QueryPerson where q.Deny select q).Any();

                        iResponse = (HasCommunityAssignment || HasRoleAssignment || HasPersonAssignment);

                        if (iResponse)
                        {
                            iResponse = (HasCommunityAssignment && !HasDenyPerson && !HasDenyRole) || (HasRoleAssignment && !HasDenyPerson) || HasPersonAssignment;
                        }
                    }
                }
                Manager.Commit();
            }
            catch (Exception ex)
            {
                if (Manager.IsInTransaction())
                {
                    Manager.RollBack();
                }
            }
            return(iResponse);
        }