예제 #1
0
        public async Task <string> Add(AccViewModel model)
        {
            try
            {
                string errorMessage = null;
                var    user         = new IdentityUserV2
                {
                    Email    = model.RegisterEmail,
                    UserName = model.RegisterName,
                    NickName = model.UserV2.NickName,
                    City     = model.UserV2.City,
                    Position = model.UserV2.Position
                };
                string[] deptInfo = model.Department.Split(',');
                user.Department = deptInfo[1];
                user.DeptCode   = deptInfo[0].Trim(',');
                var result = await userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    logger.LogWarning("添加用户{LogType}{CustomProperty}", "Operate", user.UserName);
                    if (user.DeptCode != "0")
                    {
                        int deptId = deptManager.GetDeptId(user.DeptCode);
                        var ids    = await deptManager.GetRolesIdAsync(deptId);

                        foreach (var id in ids)
                        {
                            context.UserRoles.Add(new IdentityUserRole <string> {
                                UserId = user.Id, RoleId = id
                            });
                        }
                        context.SaveChanges();
                    }
                    return(errorMessage);
                }
                foreach (var error in result.Errors)
                {
                    errorMessage += error.Description + "\r\n";
                }
                logger.LogWarning("添加用户失败{LogType}{CustomProperty}", "Operate", errorMessage);
                return(errorMessage);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
예제 #2
0
        public async Task <RoleViewModel> Index()
        {
            var model = new RoleViewModel();

            foreach (var user in userManager.Users)
            {
                model.Users.Add(new UserInRole
                {
                    Id = user.Id, Name = user.UserName, InRoles = await userManager.GetRolesAsync(user)
                });
            }
            foreach (var dept in context.Departments)
            {
                model.Depts.Add(new DeptInRole {
                    Id = dept.Id, DeptName = dept.DeptName, InRoles = await deptManager.GetRolesIdAsync(dept.Id)
                });
            }
            model.Roles = roleManager.Roles.ToList();
            logger.LogWarning("查看角色{LogType}", "Operate");
            return(model);
        }