示例#1
0
        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);
        }
示例#3
0
        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));
                }
            }
        }
示例#4
0
        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);
        }
示例#5
0
        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();
        }
示例#6
0
        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));
            }
        }
示例#7
0
        private void loadUserRolesFor(Role role)
        {
            var userRoles = UserRolesCollection.Find(Query.EQ("RoleId", role.Id)).SetSortOrder("RoleName").ToList();

            userRoles.ForEach(ur => role.AddUserRole(ur));
        }
示例#8
0
 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))));
 }
示例#9
0
        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());
        }