예제 #1
0
        public AccountDTO RegisterAccount(ViewModel.AccountDTO accountDto)
        {
            Account account = accountDto.MapperTo <AccountDTO, Account>();

            account.AccountType = AccountType.Register;
            account.Role        = _roleRepository.GetFilter(it => it.Name == Constant.ROLE_ANONYMOUS_EN).FirstOrDefault();//刚注册的用户设置为匿名角色
            //验证数据是否正确
            if (_accountRepository.GetFilter(it => it.Name.Equals(accountDto.Name)).FirstOrDefault() != null)
            {
                //throw new DomainException(Constant.ACCOUNT_NAME_REPEATED);
                throw new DomainBusinessException(Constant.ACCOUNT_NAME_REPEATED);
            }
            _accountRepository.Add(account);
            _unitOfWork.Commit();

            return(_accountRepository.Select(it => it.Name.Equals(accountDto.Name), it => new AccountDTO()
            {
                Id = it.Id,
                Age = it.Age,
                Email = it.Email,
                Name = it.Name,
                Password = it.Password,
                Sex = it.Sex,
                Tel = it.Tel,
                RoleId = it.Role.Id,
                RoleName = it.Role.Name
            }).First());
        }
예제 #2
0
        public List <RolePermissonDTO> GetRolePermisson(int RoleId)
        {
            //1、取出所有的功能权限
            //2、给角色已有的权限标记
            //3、组成结构树
            Int32   id           = 1;//自增长序号,在easyui的treegrid中 将id设置成0会造成在获取子节点是出错
            SysRole selectedRole = _roleRepository.GetFilter(it => it.Id == RoleId, "FunctionRights").FirstOrDefault();
            List <SysFunctionRight> selectedRight = null;

            if (selectedRole != null)
            {
                selectedRight = selectedRole.FunctionRights;
            }
            else
            {
                return(new List <RolePermissonDTO>());
            }
            List <SysModule>        list = _moduleRepository.GetFilter(it => true, "ModuleOperates").ToList();
            List <RolePermissonDTO> rolePermissionList = new List <RolePermissonDTO>();

            list.ForEach(it => {
                RolePermissonDTO rpd = new RolePermissonDTO()
                {
                    Id = id++, ModuleName = it.Name, IsModule = true, ParentId = it.ParentId, ModuleId = it.Id
                };
                if (it.ModuleOperates != null)
                {
                    foreach (var item in it.ModuleOperates)
                    {
                        if (rpd.children == null)
                        {
                            rpd.children = new List <RolePermissonDTO>();
                        }
                        if (selectedRight != null && selectedRight.Find(sr => sr.KeyCode == item.KeyCode) != null)
                        {
                            rpd.children.Add(new RolePermissonDTO()
                            {
                                Id = id++, ModuleName = "->", OperateName = item.Name, KeyCode = item.KeyCode, IsModule = false, IsOwned = true, OperateId = item.Id
                            });
                        }
                        else
                        {
                            rpd.children.Add(new RolePermissonDTO()
                            {
                                Id = id++, ModuleName = "->", OperateName = item.Name, KeyCode = item.KeyCode, IsModule = false, OperateId = item.Id
                            });
                        }
                    }
                }
                ;
                rolePermissionList.Add(rpd);
            });

            rolePermissionList.ForEach(it => {
                if (it.children == null)
                {
                    it.children = new List <RolePermissonDTO>();
                }
                //rolePermissionList.FindAll(rpl => rpl.ParentId == it.Id && rpl.IsModule);
                it.children.AddRange(rolePermissionList.FindAll(rpl => rpl.ParentId == it.ModuleId && rpl.IsModule));
            });

            return(rolePermissionList.Where(it => it.ParentId == null && it.IsModule).Select(it => it.Extension()).ToList());
            //return rolePermissionList;
        }