public List <Models.Permissions> GetAllDatabasePermissions(String DomainOrServerName, String UserName, String Password, int DatabaseID, bool domain) { try { List <Models.Permissions> permissions = new List <Models.Permissions>(); var logic = new UsersLogic(); logic.Domain = DomainOrServerName; logic.UserName = UserName; logic.Password = Password; List <Models.SecuredGroup> SecuredUsers = logic.GetSecuredUsers(Domain, UserName, Password); Models.Permissions permission = new Models.Permissions(); foreach (var entry in SecuredUsers) { var db = entry.SecuredDBs.FirstOrDefault(d => d.Id == DatabaseID); if (db != null) { List <Models.SecurityNode> tree = logic.GetSecuredUsersTree(Domain, UserName, Password); var databaseNode = tree.Where(t => t.DbId == DatabaseID); foreach (var DBNode in databaseNode) { var archivesNode = DBNode.Children.Where(x => x.Type == "archive"); foreach (var archive in archivesNode) { //Is a Group if (entry.Type == 0) { //var groupUsers = logic.GetUsersOfGroup(DomainOrServerName, entry.Name, domain); var groupUsers = logic.GetGroupUsers(DomainOrServerName, entry.Name, domain); permission = logic.setPermissions(DBNode.DbId, DBNode.Label, archive.Id, archive.Label, entry.Name); if (permission != null) { permissions.Add(permission); } foreach (var user in groupUsers) { if (permission != null) { //Issue #10 NTrue 2/28/2017 permissions.Add(logic.setPermissions(DBNode.DbId, DBNode.Label, archive.Id, archive.Label, entry.Name, user)); } } } //Is a User else { permission = logic.setPermissions(DBNode.DbId, DBNode.Label, archive.Id, archive.Label, "", entry.Name); if (permission != null) { permissions.Add(permission); } } } } } } return(permissions); } catch (Exception ex) { throw new Exception("Unable to get permissions: " + ex.Message); } }
public Models.Permissions setPermissions(int DatabaseID, String DatabaseName, int ArchiveID, String ArchiveName, String GroupName = "", String User = "") { Models.Permissions permission = new Models.Permissions(); permission.DatabaseID = DatabaseID; permission.DatabaseName = DatabaseName; permission.Group = GroupName; permission.User = User; permission.ArchiveID = ArchiveID; permission.ArchiveName = ArchiveName; var logic = new UsersLogic(); var securityNumber = 0; if (!String.IsNullOrEmpty(GroupName)) { securityNumber = logic.GetUserArchiveSecurity(Domain, permission.DatabaseID, permission.ArchiveID, GroupName, UserName, Password); } else { securityNumber = logic.GetUserArchiveSecurity(Domain, permission.DatabaseID, permission.ArchiveID, User, UserName, Password); } if (securityNumber == 0) { return(null); } var userPermission = (Models.Enumerations.Property)securityNumber; #region Folder Level Security if (userPermission.HasFlag(Models.Enumerations.Property.ViewDocuments)) { permission.FolderLevel.View = true; } if (userPermission.HasFlag(Models.Enumerations.Property.AddNewDocuments)) { permission.FolderLevel.Add = true; } if (userPermission.HasFlag(Models.Enumerations.Property.DeleteDocuments)) { permission.FolderLevel.Delete = true; } if (userPermission.HasFlag(Models.Enumerations.Property.MoveDocuments)) { permission.FolderLevel.Move = true; } if (userPermission.HasFlag(Models.Enumerations.Property.ViewDocumentRevisions)) { permission.FolderLevel.ViewRevisions = true; } if (userPermission.HasFlag(Models.Enumerations.Property.ViewDocumentHistory)) { permission.FolderLevel.ViewHistory = true; } if (userPermission.HasFlag(Models.Enumerations.Property.DeleteBatches)) { permission.FolderLevel.DeleteErroredBatches = true; } if (userPermission.HasFlag(Models.Enumerations.Property.APIFullAccess)) { permission.FolderLevel.APIFullAccess = true; } #endregion #region Document Level Security if (userPermission.HasFlag(Models.Enumerations.Property.ModifyDocuments)) { permission.DocumentLevel.ModifyDocument = true; } if (userPermission.HasFlag(Models.Enumerations.Property.ModifyDocumentPages)) { permission.DocumentLevel.ModifyPages = true; } if (userPermission.HasFlag(Models.Enumerations.Property.ModifyData)) { permission.DocumentLevel.ModifyData = true; } if (userPermission.HasFlag(Models.Enumerations.Property.ModifyAnnotations)) { permission.DocumentLevel.ModifyAnnotations = true; } if (userPermission.HasFlag(Models.Enumerations.Property.PublishDocumentRevisions)) { permission.DocumentLevel.PublishRevisions = true; } #endregion #region Export Level Security if (userPermission.HasFlag(Models.Enumerations.Property.PrintDocuments)) { permission.ExportLevelSecurity.Print = true; } if (userPermission.HasFlag(Models.Enumerations.Property.EmailDocuments)) { permission.ExportLevelSecurity.Email = true; } if (userPermission.HasFlag(Models.Enumerations.Property.ExportDocuments)) { permission.ExportLevelSecurity.ExportDocument = true; } if (userPermission.HasFlag(Models.Enumerations.Property.ExportData)) { permission.ExportLevelSecurity.ExportData = true; } if (userPermission.HasFlag(Models.Enumerations.Property.ViewInAcrobat)) { permission.ExportLevelSecurity.ViewInAcrobat = true; } if (userPermission.HasFlag(Models.Enumerations.Property.LaunchDocument)) { permission.ExportLevelSecurity.Launch = true; } if (userPermission.HasFlag(Models.Enumerations.Property.LaunchNewVersion)) { permission.ExportLevelSecurity.LaunchCopy = true; } #endregion return(permission); }
public ActionResult Permissions() { Models.Permissions perm = new Models.Permissions(); // IEnumerable<Parichay.Security.Entity.RoleActions> rslt; try { string[] roles = Roles.GetAllRoles(); for (int count1 = 0; count1 <= roles.Length - 1; count1++) { perm.rolesList.Add(new SelectListItem { Text = roles[count1], Value = roles[count1] }); } perm.actionsList = Parichay.Security.ADHSecurityHelper.getAllActions(); perm.permissionsList = Parichay.Security.ADHSecurityHelper.getAllPermissions(); } catch (Exception ex) { throw (ex); } if (TempData["message"] != null) { ModelState.AddModelError("", TempData["message"].ToString()); } return View(perm); }