Ejemplo n.º 1
0
        public async Task <bool> UpdateAsync(UserEditModel model)
        {
            if (model == null)
            {
                return(ToResponse(false, Errors.invalid_data));
            }
            if (!_process.User.isAdmin)
            {
                if (!_process.User.Permissions.Contains("employee.me"))
                {
                    return(ToResponse(false, "Bạn không có quyền"));
                }
                if (model.Id != _process.User.Id)
                {
                    return(ToResponse(false, "Bạn không có quyền"));
                }
            }

            if (!string.IsNullOrWhiteSpace(model.Email) && !BusinessExtensions.IsValidEmail(model.Email.Trim(), 50))
            {
                return(ToResponse(false, "Email không hợp lệ"));
            }

            if (model.RoleId <= 0)
            {
                return(ToResponse(false, "Vui lòng chọn vai trò"));
            }

            if (string.IsNullOrWhiteSpace(model.UserName))
            {
                return(ToResponse(false, Errors.invalid_username_or_pass));
            }
            var user = await _rpEmployee.GetByUserNameAsync(model.UserName.Trim(), _process.User.Id);

            if (user == null)
            {
                return(ToResponse(false, "Tài khoản không tồn tại"));
            }
            user           = _mapper.Map <UserSql>(model);
            user.UpdatedBy = _process.User.Id;
            user.Email     = string.IsNullOrWhiteSpace(user.Email) ? string.Empty : user.Email.Trim().ToLower();

            var existUser = await _rpEmployee.GetByIdAsync(model.Id);

            if (!_process.User.isHead && model.RoleId == (int)RoleType.Head)
            {
                return(ToResponse(false, "Vai trò không hợp lệ"));
            }

            if (!_process.User.isAdmin && (model.RoleId == (int)RoleType.Admin || model.RoleId == (int)RoleType.Head))
            {
                return(ToResponse(false, "Vai trò không hợp lệ"));
            }

            if (_process.User.isRsmAsmSS || _process.User.isSale)
            {
                user.RoleId = existUser.RoleId;
            }
            return(ToResponse(await _rpEmployee.UpdateAsync(user)));
        }
Ejemplo n.º 2
0
        public async Task <int> CreateAsync(UserCreateModel model)
        {
            if (model == null)
            {
                return(ToResponse(0, Errors.invalid_data));
            }
            if (string.IsNullOrWhiteSpace(model.UserName))
            {
                return(ToResponse(0, "Tên đăng nhập không được để trống"));
            }
            if (model.UserName.Contains(" "))
            {
                return(ToResponse(0, "Tên đăng nhập viết liền không dấu cách"));
            }
            if (string.IsNullOrWhiteSpace(model.Password))
            {
                return(ToResponse(0, "Mật khẩu không được để trống"));
            }
            if (model.Password.Trim().Length < 5)
            {
                return(ToResponse(0, "Mật khẩu phải có ít nhất 5 ký tự"));
            }
            if (string.IsNullOrWhiteSpace(model.PasswordConfirm))
            {
                return(ToResponse(0, "Mật khẩu xác thực không được để trống"));
            }
            if (model.Password != model.PasswordConfirm)
            {
                return(ToResponse(0, "Mật khẩu không khớp"));
            }

            if (model.RoleId <= 0)
            {
                return(ToResponse(0, "Vui lòng chọn vai trò"));
            }

            if (!string.IsNullOrWhiteSpace(model.Email) && !BusinessExtensions.IsValidEmail(model.Email.Trim(), 50))
            {
                return(ToResponse(0, "Email không hợp lệ"));
            }

            if (string.IsNullOrWhiteSpace(model.Code))
            {
                return(ToResponse(0, "Mã nhân viên không được để trống"));
            }

            var existUserName = await _rpEmployee.GetByUserNameAsync(model.UserName.Trim(), _process.User.Id);

            if (existUserName != null)
            {
                return(ToResponse(0, "Tên đăng nhập đã tồn tại"));
            }
            var existCode = await _rpEmployee.GetByCodeAsync(model.Code.Trim(), _process.User.Id);

            if (existCode != null)
            {
                return(ToResponse(0, "Mã đã tồn tại"));
            }

            var user = _mapper.Map <UserSql>(model);

            user.CreatedBy = _process.User.Id;
            user.Code      = user.Code.Trim().ToLower();
            user.Email     = user.Email.Trim().ToLower();
            user.UserName  = user.UserName.Trim().ToLower();
            user.Password  = user.Password.Trim();
            user.Password  = Utils.getMD5(model.Password);

            var response = await _rpEmployee.CreateAsync(user);

            return(ToResponse(response));
        }