Пример #1
0
        /// <summary>
        /// 新增\修改
        /// </summary>
        /// <param name="Dto"></param>
        /// <returns></returns>
        public async Task <Guid> SaveAsync(Sys_MenuDto Dto)
        {
            var model       = Dto.Model;
            var functionIds = Dto.FunctionIds;

            model = await this.InsertOrUpdateAsync(model);

            //
            await dbMenuFunction.DeleteAsync(w => w.MenuFunction_MenuID == model.Menu_ID);

            if (functionIds.Count > 0)
            {
                var _Sys_MenuFunctionList = await dbMenuFunction.ToListAsync(w => w.MenuFunction_MenuID == model.Menu_ID);

                foreach (var item in functionIds)
                {
                    var _Sys_MenuFunction = _Sys_MenuFunctionList.FirstOrDefault(w => w.MenuFunction_FunctionID == item);

                    var menufuncModel = new Sys_MenuFunction();
                    menufuncModel.MenuFunction_ID = _Sys_MenuFunction == null?Guid.NewGuid() : _Sys_MenuFunction.MenuFunction_ID;

                    menufuncModel.MenuFunction_FunctionID = item;
                    menufuncModel.MenuFunction_MenuID     = model.Menu_ID;

                    await dbMenuFunction.InsertAsync(menufuncModel);
                }
            }

            return(model.Menu_ID);
        }
Пример #2
0
        /// <summary>
        /// 获取拥有的菜单对象的权限
        /// </summary>
        /// <param name="_Sys_MenuList"></param>
        /// <returns></returns>
        public async Task <List <Dictionary <string, object> > > GetPowerState(List <Sys_Menu> _Sys_MenuList)
        {
            var _Sys_FunctionList = await dbFunction.Query().OrderBy(w => w.Function_Num).ToListAsync();

            var _Sys_MenuFunctionList = await dbMenuFunction.Query().ToListAsync();

            var _Sys_RoleMenuFunctionList = await dbRoleMenuFunction.ToListAsync(w => this.accountService.info.RoleIDList.Contains(w.RoleMenuFunction_RoleID));

            var _PowerStateList = new List <Dictionary <string, object> >();

            if (this.accountService.info.IsSuperManage)
            {
                foreach (var item in _Sys_MenuList)
                {
                    var _PowerState = new Dictionary <string, object>();

                    foreach (var _Sys_Function in _Sys_FunctionList)
                    {
                        var ispower = _Sys_MenuFunctionList.Any(w => w.MenuFunction_MenuID == item.Menu_ID && w.MenuFunction_FunctionID == _Sys_Function.Function_ID);
                        if (_Sys_Function.Function_ByName == "Have" | item.Menu_ParentID == this.appConfiguration.SysMenuID)
                        {
                            ispower = true;
                        }
                        _PowerState.Add(_Sys_Function.Function_ByName, ispower);
                    }

                    _PowerState["MenuID"] = item.Menu_ID;
                    _PowerStateList.Add(_PowerState);
                }
                return(_PowerStateList);
            }

            foreach (var item in _Sys_MenuList)
            {
                var _PowerState = new Dictionary <string, object>();

                foreach (var _Sys_Function in _Sys_FunctionList)
                {
                    if (this.accountService.info.RoleIDList?.Count > 0)
                    {
                        var ispower = _Sys_RoleMenuFunctionList.Any(w =>
                                                                    this.accountService.info.RoleIDList.Contains(w.RoleMenuFunction_RoleID.ToGuid()) &&
                                                                    w.RoleMenuFunction_MenuID == item.Menu_ID &&
                                                                    w.RoleMenuFunction_FunctionID == _Sys_Function.Function_ID);
                        _PowerState.Add(_Sys_Function.Function_ByName, ispower);
                    }
                    else
                    {
                        _PowerState.Add(_Sys_Function.Function_ByName, false);
                    }
                }
                _PowerState["MenuID"] = item.Menu_ID;
                _PowerStateList.Add(_PowerState);
            }

            return(_PowerStateList);
        }
        /// <summary>
        /// 根据用户信息获取 Account 对象
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        public async Task <AccountInfo> GetAccountByUserId(Guid Id)
        {
            var _Sys_User = await this.FindByIdAsync(Id);

            var _Account      = new AccountInfo();
            var _Sys_UserRole = await dbUserRole.ToListAsync(w => w.UserRole_UserID == _Sys_User.User_ID);

            //
            _Account.RoleIDList = _Sys_UserRole.Select(w => w.UserRole_RoleID).ToList();
            _Account.UserID     = _Sys_User.User_ID.ToGuid();
            _Account.UserName   = _Sys_User.User_Name;
            _Account._Sys_User  = _Sys_User;
            //如果是超级管理员 帐户
            _Account.IsSuperManage = _Sys_UserRole.Any(w => w.UserRole_RoleID == AppConfig.AdminConfig.AdminRoleID);
            return(_Account);
        }
        /// <summary>
        /// 新增\修改
        /// </summary>
        /// <param name="Dto"></param>
        /// <returns></returns>
        public async Task <Guid> SaveAsync(Sys_UserDto Dto)
        {
            var model   = Dto.Model;
            var roleIds = Dto.RoleIds;

            if (string.IsNullOrWhiteSpace(model.User_Pwd))
            {
                MessageBox.Show("密码不能为空!");
            }

            if (model.User_ID == Guid.Empty)
            {
                model.User_Pwd = string.IsNullOrWhiteSpace(model.User_Pwd) ? "123" : model.User_Pwd; //Tools.MD5Encrypt("123");
                model          = await this.InsertAsync(model);
            }
            else
            {
                await this.UpdateByIdAsync(model);
            }

            //变更用户角色
            if (roleIds.Count > 0)
            {
                var _Sys_UserRoleList = await dbUserRole.ToListAsync(w => w.UserRole_UserID == model.User_ID);

                await dbUserRole.DeleteAsync(w => w.UserRole_UserID == model.User_ID);

                foreach (var item in roleIds)
                {
                    var _Sys_UserRole = _Sys_UserRoleList.FirstOrDefault(w => w.UserRole_RoleID == item);

                    var userRoleModel = new Sys_UserRole();
                    userRoleModel.UserRole_ID = _Sys_UserRole == null?Guid.NewGuid() : _Sys_UserRole.UserRole_ID;

                    userRoleModel.UserRole_RoleID = item;
                    userRoleModel.UserRole_UserID = model.User_ID;
                    await dbUserRole.InsertAsync(userRoleModel);
                }
            }

            return(model.User_ID);
        }