コード例 #1
0
        /// <summary>
        /// 保存用户到数据库中
        /// </summary>
        /// <param name="newUser"></param>
        /// <param name="roles"></param>
        internal static void SaveUser(User newUser, IEnumerable <string> roles)
        {
            if (string.IsNullOrEmpty(newUser.Id))
            {
                var uid  = UserHelper.Retrieves().FirstOrDefault(u => u.UserName == newUser.UserName)?.Id;
                var user = DbContextManager.Create <User>();
                if (user != null)
                {
                    if (!string.IsNullOrEmpty(uid))
                    {
                        user.Delete(new string[] { uid });
                    }
                    if (user.Save(newUser))
                    {
                        // 根据配置文件设置默认角色
                        var role = DbContextManager.Create <Role>();
                        if (role != null)
                        {
                            var roleIds = role.Retrieves().Where(r => roles.Any(rl => rl.Equals(r.RoleName, StringComparison.OrdinalIgnoreCase))).Select(r => r.Id);
                            if (roleIds.Any())
                            {
#nullable disable
                                role.SaveByUserId(newUser.Id, roleIds);
#nullable restore
                                CacheCleanUtility.ClearCache(userIds: new string[0], roleIds: new string[0], cacheKey: $"{UserHelper.RetrieveUsersByNameDataKey}-{newUser.UserName}");
                            }
                        }
                    }
                }
コード例 #2
0
        public void RetrievesByUserId_Ok()
        {
            var userId = UserHelper.Retrieves().FirstOrDefault(r => r.UserName == "Admin").Id;
            var groups = GroupHelper.RetrievesByUserId(userId);

            Assert.NotNull(groups);
        }
コード例 #3
0
        /// <summary>
        /// 保存用户角色關係
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="roleIds"></param>
        /// <returns></returns>
        public static bool SaveByUserId(string userId, IEnumerable <string> roleIds)
        {
            // 演示模式時禁止修改 Admin 对 Administrators 角色的移除操作
            var ret = false;

            if (DictHelper.RetrieveSystemModel())
            {
                var users   = new string[] { "Admin", "User" };
                var userIds = UserHelper.Retrieves().Where(u => users.Any(usr => usr.Equals(u.UserName, StringComparison.OrdinalIgnoreCase))).Select(u => u.Id);
                if (userIds.Any(u => (u ?? string.Empty).Equals(userId, StringComparison.OrdinalIgnoreCase)))
                {
                    ret = true;
                }
            }
            if (ret)
            {
                return(ret);
            }

            ret = DbContextManager.Create <Role>()?.SaveByUserId(userId, roleIds) ?? false;
            if (ret)
            {
                CacheCleanUtility.ClearCache(userIds: new List <string>()
                {
                    userId
                }, roleIds: roleIds);
            }
            return(ret);
        }
コード例 #4
0
        public void SaveByRoleID_Ok()
        {
            var uId = UserHelper.Retrieves().FirstOrDefault(u => u.UserName.Equals("Admin", System.StringComparison.OrdinalIgnoreCase))?.Id;

            Assert.True(RoleHelper.SaveByUserId(uId, new string[0]));
            Assert.Contains(RoleHelper.RetrievesByUserName("Admin"), r => r.Equals("Administrators"));
        }
コード例 #5
0
        public void UserUpdate_Ok()
        {
            var user = UserHelper.Retrieves().FirstOrDefault(m => m.UserName == "User");

            user.DisplayName = "UnitTest";
            Assert.True(UserHelper.Update(user.Id, "123789", "UnitTest"));
        }
コード例 #6
0
        public void UserSave_Ok()
        {
            var user = UserHelper.Retrieves().FirstOrDefault(m => m.UserName == "User");

            user.DisplayName = "UnitTest";

            // 演示模式下不允許更改  Admin User 账户信息
            Assert.True(UserHelper.Save(user));
        }
コード例 #7
0
        public void UserUpdate_Ok()
        {
            SetSystemMode();
            var user = UserHelper.Retrieves().FirstOrDefault(m => m.UserName == "User");

            user.DisplayName = "UnitTest";
            Assert.True(UserHelper.Update(user.Id, "123789", "UnitTest"));
            var user2 = UserHelper.Retrieves().FirstOrDefault(m => m.Id == user.Id);

            Assert.NotEqual("UnitTest", user2.DisplayName);
        }
コード例 #8
0
ファイル: UsersTest.cs プロジェクト: xingx001/BootstrapAdmin
        public void SaveByRoleId_Ok()
        {
            var roleId = RoleHelper.Retrieves().FirstOrDefault(g => g.RoleName == "Administrators").Id;
            var id     = UserHelper.Retrieves().FirstOrDefault(u => u.UserName == "Admin").Id;

            Assert.True(UserHelper.SaveByRoleId(roleId, new string[] { id }));

            var users = UserHelper.RetrievesByRoleId(roleId);

            Assert.NotEmpty(users.Where(u => u.Checked == "checked"));
        }
コード例 #9
0
ファイル: UsersTest.cs プロジェクト: xingx001/BootstrapAdmin
        public void Reject_Ok()
        {
            var u = new User();

            u.UserName    = "******";
            u.DisplayName = "DisplayName";
            u.Description = "Desc";
            u.Icon        = "default.jpg";
            UserHelper.Delete(UserHelper.RetrieveNewUsers().Union(UserHelper.Retrieves()).Where(usr => usr.UserName == u.UserName).Select(usr => usr.Id));
            UserHelper.Save(u);
            Assert.True(UserHelper.Reject(UserHelper.RetrieveNewUsers().FirstOrDefault(usr => usr.UserName == u.UserName).Id, "Argo"));
        }
コード例 #10
0
ファイル: UsersTest.cs プロジェクト: xingx001/BootstrapAdmin
        public void SaveByGroupId_Ok()
        {
            var groupId = GroupHelper.Retrieves().FirstOrDefault(g => g.GroupName == "Admin").Id;
            var id      = UserHelper.Retrieves().FirstOrDefault(u => u.UserName == "Admin").Id;

            Assert.True(UserHelper.SaveByGroupId(groupId, new string[] { id }));

            var users = UserHelper.RetrievesByGroupId(groupId);

            Assert.NotEmpty(users.Where(u => u.Checked == "checked"));

            Assert.True(UserHelper.SaveByGroupId(groupId, new string[0]));
        }
コード例 #11
0
ファイル: UsersTest.cs プロジェクト: xingx001/BootstrapAdmin
        public void SaveUser_Ok()
        {
            var user = new User {
                UserName = "******", Password = "******", DisplayName = "DisplayName", ApprovedBy = "System", ApprovedTime = DateTime.Now, Description = "Desc", Icon = "default.jpg"
            };

            Assert.Equal($"{user.UserName} ({user.DisplayName})", user.ToString());
            Assert.True(UserHelper.Save(user));

            // 二次保存时返回 false
            user.Id = null;
            Assert.False(UserHelper.Save(user));
            Assert.True(UserHelper.Delete(UserHelper.Retrieves().Where(usr => usr.UserName == user.UserName).Select(usr => usr.Id)));
        }
コード例 #12
0
ファイル: UsersTest.cs プロジェクト: xingx001/BootstrapAdmin
        public void ApproveUser_Ok()
        {
            UserHelper.Delete(UserHelper.Retrieves().Where(usr => usr.UserName == "UnitTest").Select(usr => usr.Id));

            var up = new User()
            {
                UserName = "******", Password = "******", Description = "新建用户用于测试批准", DisplayName = "UnitTest", Icon = "default.jpg"
            };

            UserHelper.Save(up);
            Assert.True(UserHelper.Approve(up.Id, "UnitTest"));

            UserHelper.Delete(UserHelper.Retrieves().Where(u => u.UserName == up.UserName).Select(u => u.Id));
        }
コード例 #13
0
        /// <summary>
        /// 保存用户到数据库中
        /// </summary>
        /// <param name="newUser"></param>
        /// <param name="roles"></param>
        internal static void SaveUser(User newUser, IEnumerable <string> roles)
        {
            var uid = UserHelper.Retrieves().FirstOrDefault(u => u.UserName == newUser.UserName)?.Id;

            if (uid != null)
            {
                DbContextManager.Create <User>().Delete(new string[] { uid });
            }
            DbContextManager.Create <User>().Save(newUser);

            // 根据配置文件设置默认角色
            var roleIds = DbContextManager.Create <Role>().Retrieves().Where(r => roles.Any(rl => rl.Equals(r.RoleName, StringComparison.OrdinalIgnoreCase))).Select(r => r.Id);

            DbContextManager.Create <Role>().SaveByUserId(newUser.Id, roleIds);
            CacheCleanUtility.ClearCache(userIds: new string[0], roleIds: new string[0], cacheKey: $"{UserHelper.RetrieveUsersByNameDataKey}-{newUser.UserName}");
        }
コード例 #14
0
ファイル: RolesTest.cs プロジェクト: xingx001/BootstrapAdmin
        public void RetrieveRolesByUserName_Ok()
        {
            var id = RoleHelper.Retrieves().FirstOrDefault(r => r.RoleName == "Administrators").Id;

            UserHelper.SaveByRoleId(id, UserHelper.Retrieves().Select(u => u.Id));
            Assert.NotEmpty(RoleHelper.RetrievesByUserName("Admin"));

            // 新建用户 默认角色为 Default
            var user = new User {
                UserName = "******", Password = "******", DisplayName = "DisplayName", ApprovedBy = "System", ApprovedTime = DateTime.Now, Description = "Desc", Icon = ""
            };

            Assert.True(UserHelper.Save(user));
            Assert.Single(RoleHelper.RetrievesByUserName(user.UserName));
            Assert.True(UserHelper.Delete(UserHelper.Retrieves().Where(usr => usr.UserName == user.UserName).Select(usr => usr.Id)));
        }
コード例 #15
0
ファイル: AppTest.cs プロジェクト: xingx001/BootstrapAdmin
        public void RetrievesByUserName_Ok()
        {
            var roleId = RoleHelper.Retrieves().FirstOrDefault(r => r.RoleName == "Administrators").Id;
            var userId = UserHelper.Retrieves().FirstOrDefault(u => u.UserName == "Admin").Id;

            UserHelper.SaveByRoleId(roleId, new string[] { userId });
            Assert.NotEmpty(AppHelper.RetrievesByUserName("Admin"));

            roleId = RoleHelper.Retrieves().FirstOrDefault(r => r.RoleName == "Default").Id;
            userId = UserHelper.Retrieves().FirstOrDefault(u => u.UserName == "User").Id;
            UserHelper.SaveByRoleId(roleId, new string[] { userId });
            var apps = AppHelper.RetrievesByRoleId(roleId);

            AppHelper.SaveByRoleId(roleId, apps.Select(a => a.Id));
            Assert.NotEmpty(AppHelper.RetrievesByUserName("User"));
        }
コード例 #16
0
ファイル: UsersTest.cs プロジェクト: xingx001/BootstrapAdmin
        public void RetrieveUserByUserName_Ok()
        {
            var usr = UserHelper.RetrieveUserByUserName("Admin");

            Assert.Equal("Administrator", usr.DisplayName);

            // 新建用户 默认角色为 Default
            var user = new User {
                UserName = "******", Password = "******", DisplayName = "DisplayName", ApprovedBy = "System", ApprovedTime = DateTime.Now, Description = "Desc", Icon = ""
            };

            Assert.True(UserHelper.Save(user));
            var u = UserHelper.RetrieveUserByUserName(user.UserName);

            Assert.Equal("default.jpg", u.Icon);
            Assert.True(UserHelper.Delete(UserHelper.Retrieves().Where(usr => usr.UserName == user.UserName).Select(usr => usr.Id)));
        }
コード例 #17
0
ファイル: RolesTest.cs プロジェクト: xingx001/BootstrapAdmin
        public void RetrieveRolesByUserId_Ok()
        {
            var userId = UserHelper.Retrieves().Where(u => u.UserName == "Admin").FirstOrDefault().Id;

            Assert.NotEmpty(RoleHelper.RetrievesByUserId(userId));
        }
コード例 #18
0
        public void SaveByUserId_Ok()
        {
            var userId = UserHelper.Retrieves().FirstOrDefault(r => r.UserName == "Admin").Id;

            Assert.True(GroupHelper.SaveByUserId(userId, GroupHelper.Retrieves().Select(g => g.Id)));
        }
コード例 #19
0
ファイル: RolesTest.cs プロジェクト: xingx001/BootstrapAdmin
        public void SaveRolesByUserId_Ok()
        {
            var userId = UserHelper.Retrieves().Where(u => u.UserName == "Admin").FirstOrDefault().Id;

            Assert.True(RoleHelper.SaveByUserId(userId, RoleHelper.Retrieves().Select(r => r.Id)));
        }
コード例 #20
0
ファイル: UsersTest.cs プロジェクト: xingx001/BootstrapAdmin
 public virtual void Retrieves_Ok()
 {
     Assert.NotEmpty(UserHelper.Retrieves());
 }
コード例 #21
0
ファイル: UsersTest.cs プロジェクト: xingx001/BootstrapAdmin
        public void Update_Ok()
        {
            var userId = UserHelper.Retrieves().FirstOrDefault(u => u.UserName == "Admin").Id;

            Assert.True(UserHelper.Update(userId, "123789", "Administrator"));
        }