public Role[] GetUserRoles(string username) { List <Role> roles = new List <Role>(); string[] temp_roles = PermissionManagementAgent.GetUserRoles(username); foreach (string da_roleName in temp_roles) { Leadtools.Medical.PermissionsManagement.DataAccessLayer.Role da_role = PermissionManagementAgent.GetRole(da_roleName); if (null != da_role) { roles.Add(TranslateRole(da_role)); } //also look in built-in roles { Role r = RolesBuiltInTable.Instance.Find(da_roleName); if (null != r) { roles.Add(r); } } } if (IsAdmin(username, "")) { if (!roles.Contains(RolesBuiltInTable.Instance.Admin, new RoleComparer())) { roles.Add(RolesBuiltInTable.Instance.Admin); } } return(roles.ToArray()); }
public void UpdateRolePermissions(string authUser, Role role) { IEnumerable <string> permissionsToAdd; IEnumerable <string> permissionsToDelete; if (RoleIsBuiltIn(role.Name)) { throw new Exception("Role can't be customized"); } Role roleToUpdate = TranslateRole(PermissionManagementAgent.GetRole(role.Name)); permissionsToAdd = role.AssignedPermissions.Except(roleToUpdate.AssignedPermissions); permissionsToDelete = roleToUpdate.AssignedPermissions.Except(role.AssignedPermissions); foreach (string permission in permissionsToAdd) { LoggingAgent.ChangePermission(authUser, role.Name, permission, "Role Granted"); } foreach (string permission in permissionsToDelete) { LoggingAgent.ChangePermission(authUser, role.Name, permission, "Role Denied"); } roleToUpdate.AssignedPermissions = role.AssignedPermissions; PermissionManagementAgent.UpdateRole(TranslateRole(roleToUpdate)); }
public bool IsAdmin(string username, string userData) { bool admin = PermissionManagementAgent.UserHasPermission("Admin", username); if (!admin) { string[] roles = PermissionManagementAgent.GetUserRoles(username); admin = roles.Contains(RolesBuiltInTable.Instance.Admin.Name); if (!admin) { foreach (var role in roles) { var rolePermissions = PermissionManagementAgent.GetRolePermissions(role); if (rolePermissions.Contains("Admin")) { admin = true; break; } } } } return(admin); }
public void DeleteRole(string authUser, string roleName) { if (RoleIsBuiltIn(roleName)) { throw new Exception("Role can't be deleted"); } PermissionManagementAgent.DeleteRole(roleName); LoggingAgent.DeleteRole(authUser, roleName); }
public void CreateRole(string authUser, Role role) { if (RoleExist(role.Name)) { throw new Exception("Role already exist"); } PermissionManagementAgent.AddRole(TranslateRole(role)); LoggingAgent.AddRole(authUser, role.Name); }
public Permission[] GetUserAssignedPermissions(string username) { List <Permission> permissions = new List <Permission>(); string[] permissionsNames = PermissionManagementAgent.GetUserPermissions(username); foreach (string p in permissionsNames) { permissions.Add(PermissionsTable.Instance.Find(p)); } return(permissions.ToArray()); }
public void DenyRole(string username, string role, string userData) { if (string.IsNullOrEmpty(role)) { return; } PermissionManagementAgent.DeleteUserRole(role, username); if (role == RolesBuiltInTable.Instance.Admin.Name) { PermissionManagementAgent.DeleteUserPermission("Admin", username); } }
public void GrantRole(string username, string role, string userData) { if (string.IsNullOrEmpty(role)) { return; } if (!RoleExist(role)) { throw new Exception("Role doesn't exist"); } PermissionManagementAgent.AddUserRole(role, username); }
public string[] GetUserRolesNames(string username) { string[] temp_roles = PermissionManagementAgent.GetUserRoles(username); List <string> roles = new List <string>(temp_roles); if (IsAdmin(username, "")) { if (!roles.Contains(RolesBuiltInTable.Instance.Admin.Name)) { roles.Add(RolesBuiltInTable.Instance.Admin.Name); } } return(roles.ToArray()); }
public void DenyPermission(string authUser, string username, string permission, string userData) { bool audit = false; if (string.IsNullOrEmpty(permission)) { return; } audit = PermissionManagementAgent.UserHasPermission(permission, username); PermissionManagementAgent.DeleteUserPermission(permission, username); if (audit) { LoggingAgent.ChangePermission(authUser, username, permission, "Denied"); } }
public Role GetRole(string roleName) { Role roleBuiltIn = GetBuiltInRole(roleName); if (null != roleBuiltIn) { return(roleBuiltIn); } Leadtools.Medical.PermissionsManagement.DataAccessLayer.Role da_role = PermissionManagementAgent.GetRole(roleName); if (null != da_role) { return(TranslateRole(da_role)); } return(null); }
public void DeleteUser(string authUser, string username, string userData) { string[] userRoles = PermissionManagementAgent.GetUserRoles(username); string[] userPermissions = PermissionManagementAgent.GetUserPermissions(username); foreach (string role in userRoles) { PermissionManagementAgent.DeleteUserRole(role, username); } foreach (string permission in userPermissions) { PermissionManagementAgent.DeleteUserPermission(permission, username); } UserManagementAgent.RemoveUser(username); LoggingAgent.DeleteUser(authUser, username); }
public Permission[] GetPermissions() { PermissionsManagement.DataAccessLayer.Permission[] permissions = PermissionManagementAgent.GetPermissions(); var allPermissions = (from p in permissions select new Permission { Name = p.Name, Description = p.Description, FriendlyName = p.Name.Replace("MWV.", string.Empty).SplitCamelCase() } ).ToArray(); if (Convert.ToBoolean(ConfigurationManager.AppSettings["AllPermissions"]) == true) { return(allPermissions); } return(allPermissions.Where((p) => p.Name.Contains("MWV")).ToArray()); }
public Role[] GetRoles() { List <Role> roles = new List <Role>(); IncludeBuiltInRoles(roles); Leadtools.Medical.PermissionsManagement.DataAccessLayer.Role[] da_roles = PermissionManagementAgent.GetRoles(); foreach (Leadtools.Medical.PermissionsManagement.DataAccessLayer.Role da_role in da_roles) { roles.Add(TranslateRole(da_role)); } return(roles.ToArray()); }
bool RoleExist(string roleName) { return(RoleIsBuiltIn(roleName) || PermissionManagementAgent.RoleExist(roleName)); }