Ejemplo n.º 1
0
        /// <summary>
        /// 获取用户角色
        /// </summary>
        /// <param name="userGuid"></param>
        /// <returns></returns>
        public OpreateResult <List <UserRoleDto> > GetUserRole(Guid userGuid, int companyNo)
        {
            OpreateResult <List <UserRoleDto> > opreateResult = new OpreateResult <List <UserRoleDto> >();

            try
            {
                opreateResult.Data = ObjectMapper.Map <List <UserRoleDto> >(_userRoleReposity.GetAllList(x => x.UserGuid == userGuid && x.CompanyNo == companyNo));
            }
            catch (Exception ex)
            {
                opreateResult.AddError(ex);
            }
            return(opreateResult);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取用户菜单信息
        /// </summary>
        /// <param name="userGuid"></param>
        /// <param name="companyNo"></param>
        /// <returns></returns>
        public OpreateResult <UserMenuOutPut> GetUserMenu(Guid userGuid, int companyNo)
        {
            OpreateResult <UserMenuOutPut> opreateResult = new OpreateResult <UserMenuOutPut>();

            try
            {
                var userMenuOutPut = _companyRepository.GetAll().Where(x => x.CompanyNo == companyNo && x.UserGuid == userGuid).Select(x => new UserMenuOutPut
                {
                    CompanyNo = companyNo,
                    UserGuid  = userGuid,
                    EmpGuid   = x.EmployeeGuid,
                    UserName  = x.RealName
                }).FirstOrDefault();

                var roleIds = _userRoleReposity.GetAll().Where(x => x.CompanyNo == companyNo && x.UserGuid == userGuid && x.Status == EnumStatus.Normal).Select(x => x.RoleId).ToList();
                var actions = _actionRoleReposity.GetAll().Where(x => x.CompanyNo == companyNo && roleIds.Contains(x.RoleId)).Select(x => x.ActionPermission).ToList();
                var meuns   = _meunRoleReposity.GetAll().Where(x => x.CompanyNo == companyNo && roleIds.Contains(x.RoleId)).Select(x => new MenuOutPut
                {
                    Icon   = x.MenuPermission.Icon,
                    Title  = x.MenuPermission.Title,
                    Url    = x.MenuPermission.Area + "/" + x.MenuPermission.Controller + "/" + x.MenuPermission.Action,
                    MenuId = x.MenuPermissionId
                }).ToList();
                foreach (var item in meuns)
                {
                    item.ActionOutputs.AddRange(actions.Where(x => x.MenuPermissionId == item.MenuId).Select(x => new ActionOutput
                    {
                        Title = x.Description,
                        Url   = x.Controller + "/" + x.Action
                    }));
                }
                userMenuOutPut.MenuOutPuts.AddRange(meuns);

                opreateResult.Data = userMenuOutPut;
            }
            catch (Exception ex)
            {
                opreateResult.AddError(ex);
            }
            return(opreateResult);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="userNoOrEmail"></param>
        /// <param name="passWord"></param>
        /// <returns></returns>
        public OpreateResult <SystemUser> Login(string userNoOrEmail, string passWord)
        {
            OpreateResult <SystemUser> opreateResult = new OpreateResult <SystemUser>();
            var user = this._repository.GetAll().FirstOrDefault(x => x.UserNo.ToString() == userNoOrEmail || x.UserName == userNoOrEmail || x.Email == userNoOrEmail);

            if (user == null)
            {
                opreateResult.AddError("账号不存在!");
                return(opreateResult);
            }
            switch ((EnumPasswordFormat)user.PasswordFormatId)
            {
            case EnumPasswordFormat.Encrypted:
                passWord = _encryptionService.EncryptText(passWord);
                break;

            case EnumPasswordFormat.Hashed:
                passWord = _encryptionService.CreatePasswordHash(passWord, user.PasswordSalt);
                break;

            case EnumPasswordFormat.MD5:
                passWord = _encryptionService.MD5Hash(passWord, user.PasswordSalt);
                break;
            }

            bool isValid = passWord == user.Password;

            if (isValid)
            {
                user.LatestLoginDateUtc = DateTime.UtcNow;
                _repository.Update(user);
                opreateResult.Data    = user;
                opreateResult.Message = "登陆成功!";
            }
            else
            {
                opreateResult.Message = "用户密码错误!";
                opreateResult.AddError("用户密码错误!");
            }
            return(opreateResult);
        }