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>()); }
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); } } }
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); }
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); }
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); }