public override void AddUsersToRoles(string[] usernames, string[] roleNames) { if (usernames != null && usernames.Length > 0 && roleNames != null && roleNames.Length > 0) { using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.Required)) { CustomUser user = null; CustomRole role = null; foreach (String roleName in roleNames) { CustomUserDAO userDAO = new CustomUserDAO(); CustomRoleDAO roleDAO = new CustomRoleDAO(); role = roleDAO.FindByName(roleName, ApplicationName); if (role != null) { foreach (String userName in usernames) { user = userDAO.FindByName(userName, ApplicationName); if (role.Users == null) { role.Users = new HashSet<CustomUser>(); } if (!role.Users.Contains(user)) { role.Users.Add(user); } } roleDAO.SaveOrUpdate(role); } } transaction.Complete(); } } }
public override bool RoleExists(string roleName) { CustomRoleDAO roleDAO = new CustomRoleDAO(); return roleName != null && roleDAO.FindByName(roleName, ApplicationName) != null; }
public override bool IsUserInRole(string username, string roleName) { bool isUserInRole = false; if (username != null && roleName != null) { CustomRoleDAO roleDAO = new CustomRoleDAO(); CustomRole role = roleDAO.FindByName(roleName, ApplicationName); if (role != null) { ICollection<CustomUser> users = role.Users; if (users != null && users.Count > 0) { var query = (from u in users where u.Name == username select u.Name); isUserInRole = query != null && query.Count() > 0; } } } return isUserInRole; }
public override void RemoveUsersFromRoles(string[] usernames, string[] roleNames) { if (usernames != null && usernames.Length > 0 && roleNames != null && roleNames.Length > 0) { using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.Required)) { CustomRole role = null; IList<CustomUser> usersToBeRemoved = null; CustomRoleDAO roleDAO = new CustomRoleDAO(); // remove users for each role foreach (String roleName in roleNames) { role = roleDAO.FindByName(roleName, ApplicationName); if (role != null) { if (role.Users != null && role.Users.Count > 0) { // get all matched users (users to be removed) from the current role var query = (from u in role.Users where usernames.Any(name => name == u.Name) select u ); if (query != null && query.Count() > 0) { usersToBeRemoved = query.ToList(); // remove each matched user from the role foreach (CustomUser userToBeRemoved in usersToBeRemoved) { role.Users.Remove(userToBeRemoved); } } // persist role roleDAO.SaveOrUpdate(role); } } } transaction.Complete(); } } }
public override string[] GetUsersInRole(string roleName) { String[] userNames = new String[0]; if (roleName != null) { CustomRoleDAO roleDAO = new CustomRoleDAO(); CustomRole role = roleDAO.FindByName(roleName, ApplicationName); if (role != null) { ICollection<CustomUser> users = role.Users; if (users != null && users.Count > 0) { userNames = new String[users.Count]; for (int index = 0; index < users.Count; index++) { userNames[index] = users.ElementAt(index).Name; } } } } return userNames; }
public override string[] GetAllRoles() { String[] roleNames = new String[0]; CustomRoleDAO roleDAO = new CustomRoleDAO(); IList<CustomRole> roles = roleDAO.FindByApplicationName(ApplicationName); if (roles != null && roles.Count > 0) { roleNames = new String[roles.Count]; for (int index = 0; index < roles.Count; index++) { roleNames[index] = roles[index].Name; } } return roleNames; }
public override string[] FindUsersInRole(string roleName, string usernameToMatch) { IList<String> userNames = new List<String>(); if (roleName != null && usernameToMatch != null) { CustomRoleDAO roleDAO = new CustomRoleDAO(); CustomRole role = roleDAO.FindByName(roleName, ApplicationName); if (role != null) { ICollection<CustomUser> users = role.Users; if (users != null && users.Count > 0) { foreach (CustomUser user in users) { if (user.Name.Contains(usernameToMatch)) { userNames.Add(user.Name); } } } } } return userNames.ToArray<String>(); }
public override bool DeleteRole(string roleName, bool throwOnPopulatedRole) { bool isDeleted = false; if (roleName != null) { CustomRoleDAO roleDAO = new CustomRoleDAO(); Int32 count = roleDAO.DeleteByName(roleName, ApplicationName); isDeleted = count > 0; } return isDeleted; }
public override void CreateRole(string roleName) { if (roleName == null || roleName.Trim().Length == 0) { throw new ArgumentException("The rolename cannot be null nor empty"); } CustomRoleDAO roleDAO = new CustomRoleDAO(); roleDAO.SaveOrUpdate(new CustomRole(roleName, membershipApplication)); }