Ejemplo n.º 1
0
        public override ActionResult Edit(User entity)
        {
            if (Context.Queryable <User>().Any(n => n.Account.Equals(entity.Account) && n.Id != entity.Id))
            {
                throw new Exception("帐号已存在");
            }

            if (!string.IsNullOrEmpty(entity.Password))
            {
                entity.Password = DESEncrypt.DoubleEncrypt(entity.Password);//加密密码
            }
            var result = Context.Ado.UseTran(() =>
            {
                var sql = Context.Updateable(entity).UpdateColumns(n => new { n.Name, n.Account, n.IsEnabled, n.Password })
                          .IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand();//为空字段不需要更新
                Context.Deleteable <UserRole>(n => n.UserId.Equals(entity.Id)).ExecuteCommand();

                if (entity.RoleId != null)
                {
                    var userRoles = new List <UserRole>();
                    foreach (var roleId in entity.RoleId)
                    {
                        var item = new UserRole()
                        {
                            RoleId = roleId, UserId = entity.Id
                        };
                        item.Create();
                        userRoles.Add(item);
                    }
                    Context.Insertable(userRoles).ExecuteCommand();
                }
            });

            return(result.IsSuccess ? Success("更新成功") : Error("更新失败"));
        }
Ejemplo n.º 2
0
        public override void UpdateData()
        {
            var user = new User(SaUserId)
            {
                DbProvider = this.Provider, UserName = SaUserName, FullName = SaUserFullName
            };

            user.Register(SaPassword, Guid.Empty, false);

            var roleAdmin = new Role(this.Role_AdminId)
            {
                DbProvider = this.Provider, Name = Role_Admins
            };
            var roleUser = new Role(this.Role_UserId)
            {
                DbProvider = this.Provider, Name = Role_User
            };

            roleAdmin.Create(Guid.Empty, false);
            roleUser.Create(Guid.Empty, false);

            var userRoleAdmin = new UserRole()
            {
                DbProvider = this.Provider, UserId = user.Id, RoleId = roleAdmin.Id
            };
            var userRoleUser = new UserRole()
            {
                DbProvider = this.Provider, UserId = user.Id, RoleId = roleUser.Id
            };

            userRoleAdmin.Create(Guid.Empty, false);
            userRoleUser.Create(Guid.Empty, false);
        }
Ejemplo n.º 3
0
        public override ActionResult Add(User entity)
        {
            if (Context.Queryable <User>().Any(n => n.Account.Equals(entity.Account)))
            {
                throw new Exception("帐号已存在");
            }

            entity.Create();
            if (string.IsNullOrEmpty(entity.Password))
            {
                entity.Password = "******";
            }
            entity.Password = DESEncrypt.DoubleEncrypt(entity.Password);

            var userRoles = new List <UserRole>();

            foreach (var roleId in entity.RoleId)
            {
                var item = new UserRole()
                {
                    RoleId = roleId, UserId = entity.Id
                };
                item.Create();
                userRoles.Add(item);
            }

            var result = Context.Ado.UseTran(() =>
            {
                Context.Insertable(entity).ExecuteCommand();
                Context.Insertable(userRoles).ExecuteCommand();
            });

            return(result.IsSuccess ? Success("添加成功") : Error("添加失败"));
        }
        /// <summary>
        /// Finds a role using a role identifier.
        /// </summary>
        /// <param name="roleId">A role identifier.</param>
        /// <returns>An <see cref="IUserRole"/>.</returns>
        public async Task <ISecurityRole> FindRoleByIdAsync(string roleId)
        {
            if (string.IsNullOrEmpty(roleId))
            {
                throw new ArgumentNullException(nameof(roleId));
            }

            var applicationRole = await FindByIdAsync(roleId);

            return(UserRole.Create(applicationRole));
        }
Ejemplo n.º 5
0
        public bool AdmitRole(string roleId, User user)
        {
            if (user.UserRoles.Any(ur => ur.RoleId == roleId))
            {
                return(false);
            }

            user.UserRoles.Add(UserRole.Create(user.Id, roleId));

            return(true);
        }
Ejemplo n.º 6
0
        public override void UpdateData()
        {
            var user = new User(SaUserId) { DbProvider = this.Provider, UserName = SaUserName, FullName = SaUserFullName };
            user.Register(SaPassword, Guid.Empty, false);

            var roleAdmin = new Role(this.Role_AdminId) { DbProvider = this.Provider, Name = Role_Admins };
            var roleUser = new Role(this.Role_UserId) { DbProvider = this.Provider, Name = Role_User };
            roleAdmin.Create(Guid.Empty, false);
            roleUser.Create(Guid.Empty, false);

            var userRoleAdmin = new UserRole() { DbProvider = this.Provider, UserId = user.Id, RoleId = roleAdmin.Id };
            var userRoleUser = new UserRole() { DbProvider = this.Provider, UserId = user.Id, RoleId = roleUser.Id };
            userRoleAdmin.Create(Guid.Empty, false);
            userRoleUser.Create(Guid.Empty, false);
        }
        /// <summary>
        /// Finds a role using a role name.
        /// </summary>
        /// <param name="roleName">A role name.</param>
        /// <returns>An <see cref="IUserRole"/>.</returns>
        /// <exception cref="RoleNotFoundException">Role not found.</exception>
        public async Task <ISecurityRole> FindRoleByNameAsync(string roleName)
        {
            if (string.IsNullOrEmpty(roleName))
            {
                throw new ArgumentNullException(nameof(roleName));
            }

            var applicationRole = await FindByNameAsync(roleName);

            if (applicationRole == null)
            {
                throw new RoleNotFoundException($"Application role '{roleName}' is not found.");
            }

            return(UserRole.Create(applicationRole));
        }
Ejemplo n.º 8
0
        public Either <Error, Success> SetUserRoles(DtoLinkUserRoles linkUserRoles)
        {
            var result = _appContext.Users.FindEither(linkUserRoles.UserId).Bind(
                user =>
            {
                linkUserRoles.RoleIds.Select(role => _appContext.Roles.Find <Role>(role)).Select(
                    role =>
                {
                    UserRole.Create(user, role).Bind <EntityEntry <UserRole> >(link =>
                                                                               _appContext.UserRoles.Add(link));
                    return(Right <Error, Role>(role));
                });
                var t = _appContext.TrySaveChanges().Bind <Success>(_ => Success.ItsSuccess);
                return(t);
            });

            return(result);
        }
Ejemplo n.º 9
0
        public async Task <bool> PromotedToAdmin(PromotedToAdminDto dto)
        {
            try
            {
                var user = await _userRepo.FindAsync(dto.UserId, AbortToken);

                if (user == null)
                {
                    return(true);
                }

                var userCurrentRole = await _userRoleRepo.GetUserRoles(dto.UserId, AbortToken);

                if (!userCurrentRole.Any(s => s.RoleName == "admin"))
                {
                    await _userRoleRepo.AddAsync(UserRole.Create(user.Id, "admin"));
                }
                return(true);
            }
            catch
            {
                return(false);
            }
        }