public override string[] FindUsersInRole(string rolename, string usernameToMatch) { var cursor = UserRolesCollection.Find(Query.And(Query.EQ("RoleName", rolename), Query.Matches("UserName", BsonRegularExpression.Create(new Regex(usernameToMatch))), Query.EQ("ApplicationName", ApplicationName))). SetSortOrder("UserName"); return(cursor.Select(ur => ur.UserName).ToArray()); }
public override bool DeleteUser(string username, bool deleteAllRelatedData) { if (username == User.ADMINISTRATOR_USER) { throw new Exception(String.Format("Cannot delete default user {0}.", User.ADMINISTRATOR_USER)); } User user = getProviderUser(username, true); UsersCollection.Remove(Query.EQ("Email", user.Email)); UserRolesCollection.Remove(Query.EQ("UserId", user.Id)); return(true); }
public override void AddUsersToRoles(string[] usernames, string[] rolenames) { var users = findUsersByName(usernames); var roles = findRolesByName(rolenames); foreach (var user in users) { foreach (var role in roles) { UserRolesCollection.Save(role.AddUser(user)); } } }
public override bool DeleteRole(string rolename, bool throwOnPopulatedRole) { if (!RoleExists(rolename)) { throw new Exception(String.Format("Role name {0} not found.", rolename)); } if (throwOnPopulatedRole && GetUsersInRole(rolename).IsNotEmpty()) { throw new Exception("Cannot delete a populated role."); } RolesCollection.Remove(Query.And(Query.EQ("Name", rolename), Query.EQ("ApplicationName", ApplicationName))); UserRolesCollection.Remove(Query.And(Query.EQ("RoleName", rolename), Query.EQ("ApplicationName", ApplicationName))); return(true); }
public RedmineServiceContext(Uri serviceUri, string apiKey) { _serviceUri = serviceUri; _apiKey = apiKey; _news = new NewsCollection(this); _projects = new ProjectsCollection(this); _issues = new IssuesCollection(this); _users = new UsersCollection(this); _userRoles = new UserRolesCollection(this); _relations = new IssueRelationsCollection(this); _trackers = new IssueTrackersCollection(this); _statuses = new IssueStatusesCollection(this); _priorities = new IssuePrioritiesCollection(this); _categories = new IssueCategoriesCollection(this); _versions = new ProjectVersionsCollection(this); _attachments = new AttachmentsCollection(this); _customFields = new CustomFieldsCollection(this); _queries = new QueriesCollection(this); _syncRoot = new object(); }
public override void RemoveUsersFromRoles(string[] usernames, string[] rolenames) { var users = findUsersByName(usernames); var roles = findRolesByName(rolenames); List <BsonValue> deleteUserRolesIds = new List <BsonValue>(); foreach (var user in users) { foreach (var role in roles) { var removedUserRole = role.RemoveUser(user); if (removedUserRole.IsNotNull()) { deleteUserRolesIds.Add(removedUserRole.Id); } } } if (deleteUserRolesIds.IsNotEmpty()) { UserRolesCollection.Remove(Query.In("_id", deleteUserRolesIds)); } }
private void loadUserRolesFor(Role role) { var userRoles = UserRolesCollection.Find(Query.EQ("RoleId", role.Id)).SetSortOrder("RoleName").ToList(); userRoles.ForEach(ur => role.AddUserRole(ur)); }
public override bool IsUserInRole(string username, string rolename) { return(UserRolesCollection.IsExist(Query.And(Query.EQ("UserName", username), Query.EQ("RoleName", rolename), Query.EQ("ApplicationName", ApplicationName)))); }
public override string[] GetUsersInRole(string rolename) { var cursor = UserRolesCollection.Find(Query.And(Query.EQ("RoleName", rolename), Query.EQ("ApplicationName", ApplicationName))).SetSortOrder("UserName"); return(cursor.Select(ur => ur.UserName).ToArray()); }