public ActionResult ConfigAuth(int id)
        {
            RoleAuthModel model = new RoleAuthModel();

            ICompanyRoleBLL companyRoleBll = BLLFactory <ICompanyRoleBLL> .GetBLL("CompanyRoleBLL");

            //获取要分配角色的物业角色
            T_CompanyRole role = companyRoleBll.GetEntity(m => m.Id == id);

            IMenuBLL menuBll = BLLFactory <IMenuBLL> .GetBLL("MenuBLL");

            //获取所有的菜单
            var menuList = menuBll.GetList(m => m.MenuFlag == ConstantParam.MENU_LEFT && m.IsPlatform == ConstantParam.USER_TYPE_COMPANY && m.ParentId == null).OrderBy(m => m.Order).ToList();

            //Model赋值菜单列表
            model.MenuList = menuList;

            //Model赋值要分配角色的总公司角色
            model.Role = new RoleModel()
            {
                RoleId = role.Id, RoleName = role.RoleName, RoleMemo = role.RoleMemo
            };

            //获取该角色已经有的权限ID集合
            model.ActionIds = role.CompanyRoleActions.Select(m => m.ActionId).ToList();

            return(View(model));
        }
        public JsonResult AddRole(RoleModel model)
        {
            JsonModel jm = new JsonModel();

            //如果表单模型验证成功
            if (ModelState.IsValid)
            {
                ICompanyRoleBLL propertyRoleBll = BLLFactory <ICompanyRoleBLL> .GetBLL("CompanyRoleBLL");

                //初始化平台角色数据实体
                T_CompanyRole role = new T_CompanyRole()
                {
                    RoleName  = model.RoleName,
                    RoleMemo  = model.RoleMemo,
                    CompanyId = GetSessionModel().CompanyId.Value
                };
                //保存
                propertyRoleBll.Save(role);

                //日志记录
                jm.Content = PropertyUtils.ModelToJsonString(model);
            }
            else
            {
                jm.Msg = ConstantParam.JSON_RESULT_MODEL_CHECK_ERROR;
            }

            return(Json(jm, JsonRequestBehavior.AllowGet));
        }
        public JsonResult DeleteRole(int id)
        {
            JsonModel jm = new JsonModel();

            ICompanyRoleBLL companyRoleBll = BLLFactory <ICompanyRoleBLL> .GetBLL("CompanyRoleBLL");

            //获取要删除的总公司角色
            T_CompanyRole role = companyRoleBll.GetEntity(m => m.Id == id);

            if (role == null)
            {
                jm.Msg = "该角色不存在";
            }
            else if (role.CompanyUserRoles.Count > 0)
            {
                jm.Msg = "有配置该角色的用户,不能删除";
            }
            else
            {
                if (companyRoleBll.Delete(role))
                {
                    //操作日志
                    jm.Content = "删除总公司角色 " + role.RoleName;
                }
                else
                {
                    jm.Msg = "删除失败";
                }
            }

            return(Json(jm, JsonRequestBehavior.AllowGet));
        }
        public ActionResult ViewAuth(int id)
        {
            RoleAuthModel model = new RoleAuthModel();

            ICompanyRoleBLL companyRoleBll = BLLFactory <ICompanyRoleBLL> .GetBLL("CompanyRoleBLL");

            //获取要查看权限的总公司角色
            T_CompanyRole role = companyRoleBll.GetEntity(m => m.Id == id);

            //赋值 要查看权限的总公司角色
            model.Role = new RoleModel()
            {
                RoleId = role.Id, RoleName = role.RoleName, RoleMemo = role.RoleMemo
            };

            //如果是普通角色
            if (role.IsSystem == ConstantParam.USER_ROLE_DEFAULT)
            {
                //赋值 该角色所有的权限ID集合
                model.ActionIds = role.CompanyRoleActions.Select(m => m.ActionId).ToList();

                //Model赋值 该角色所关联的非重复菜单
                var roleMenuList = role.CompanyRoleActions.Select(m => m.Action.Menu).Distinct().OrderBy(m => m.Order).ToList();
                //新定义展示Model树形菜单
                var menuList = new List <M_Menu>();

                foreach (var menu in roleMenuList)
                {
                    if (menu.ParentId != null)
                    {
                        if (!menuList.Contains(menu.ParentMenu))
                        {
                            menuList.Add(menu.ParentMenu);
                        }
                    }
                    menuList.Add(menu);
                }
                model.MenuList = menuList;
            }
            else
            {
                IActionBLL actionBll = BLLFactory <IActionBLL> .GetBLL("ActionBLL");

                //赋值 所有的总公司权限
                model.ActionIds = actionBll.GetList(a => a.Menu.IsPlatform == ConstantParam.USER_TYPE_COMPANY).Select(a => a.Id).ToList();

                IMenuBLL menuBll = BLLFactory <IMenuBLL> .GetBLL("MenuBLL");

                //Model赋值 所有的平台菜单
                model.MenuList = menuBll.GetList(m => m.IsPlatform == ConstantParam.USER_TYPE_COMPANY).ToList();
            }

            return(View(model));
        }
        public JsonResult ConfigAuth(RoleConfigAuthModel model)
        {
            JsonModel jm = new JsonModel();

            try
            {
                ICompanyRoleBLL companyRoleBll = BLLFactory <ICompanyRoleBLL> .GetBLL("CompanyRoleBLL");

                //获取要分配角色的总公司角色
                T_CompanyRole role = companyRoleBll.GetEntity(m => m.Id == model.RoleId);
                List <R_CompanyRoleAction> actions = new List <R_CompanyRoleAction>();

                //如果设置了首页权限 230:为总公司平台首页权限ID
                if (model.ids != null && model.ids.Length > 0 && model.ids.Contains(230))
                {
                    //没有设置任何权限 则不执行循环操作
                    foreach (var id in model.ids)
                    {
                        R_CompanyRoleAction item = new R_CompanyRoleAction()
                        {
                            ActionId = id, RoleId = model.RoleId
                        };
                        actions.Add(item);
                    }
                    //修改角色对应的权限组
                    if (companyRoleBll.ConfigAuth(role, actions))
                    {
                        jm.Content = "总公司角色" + role.RoleName + "分配权限";
                    }
                    else
                    {
                        jm.Msg = "分配权限失败";
                    }
                }
                else
                {
                    jm.Msg = "必须分配总公司平台首页权限";
                }
            }
            catch
            {
                jm.Msg = "分配权限失败";
            }

            return(Json(jm, JsonRequestBehavior.AllowGet));
        }
        public JsonResult EditRole(RoleModel model)
        {
            JsonModel jm = new JsonModel();

            //如果表单模型验证成功
            if (ModelState.IsValid)
            {
                ICompanyRoleBLL companyRoleBll = BLLFactory <ICompanyRoleBLL> .GetBLL("CompanyRoleBLL");

                T_CompanyRole role = companyRoleBll.GetEntity(m => m.Id == model.RoleId);
                if (role != null)
                {
                    role.RoleName = model.RoleName;
                    role.RoleMemo = model.RoleMemo;

                    //编辑
                    if (companyRoleBll.Update(role))
                    {
                        //日志记录
                        jm.Content = PropertyUtils.ModelToJsonString(model);
                    }
                    else
                    {
                        jm.Msg = "编辑失败";
                    }
                }
                else
                {
                    jm.Msg = "该角色不存在";
                }
            }
            else
            {
                jm.Msg = ConstantParam.JSON_RESULT_MODEL_CHECK_ERROR;
            }

            return(Json(jm, JsonRequestBehavior.AllowGet));
        }
示例#7
0
        /// <summary>
        /// 添加公司,指定系统角色
        /// </summary>
        /// <param name="company">公司实体对象</param>
        /// <returns></returns>
        public bool AddCompany(T_Company company)
        {
            //使用事务进行数据库操作
            using (var tran = this.nContext.Database.BeginTransaction())
            {
                try
                {
                    //添加公司
                    var newCompany = base.Save(company);
                    if (newCompany != null)
                    {
                        //给公司设定系统角色
                        ICompanyRoleBLL companyRoleBll = BLLFactory <ICompanyRoleBLL> .GetBLL("CompanyRoleBLL");

                        //初始化物业系统角色数据实体
                        T_CompanyRole role = new T_CompanyRole()
                        {
                            RoleName  = ConstantParam.COMPANY_SYSTEM_ROLE_NAME,
                            RoleMemo  = ConstantParam.COMPANY_SYSTEM_ROLE_MEMO,
                            CompanyId = newCompany.Id,
                            IsSystem  = ConstantParam.USER_ROLE_MGR
                        };
                        //保存
                        companyRoleBll.Save(role);

                        //提交事务
                        tran.Commit();
                    }
                }
                catch
                {
                    tran.Rollback();
                    return(false);
                }
            }
            return(true);
        }
        public ActionResult EditRole(int id)
        {
            ICompanyRoleBLL companyRoleBll = BLLFactory <ICompanyRoleBLL> .GetBLL("CompanyRoleBLL");

            //获取要编辑的总公司角色
            T_CompanyRole role = companyRoleBll.GetEntity(m => m.Id == id);

            if (role != null)
            {
                //初始化返回页面的模型
                RoleModel model = new RoleModel()
                {
                    RoleId   = role.Id,
                    RoleName = role.RoleName,
                    RoleMemo = role.RoleMemo
                };

                return(View(model));
            }
            else
            {
                return(RedirectToAction("RoleList"));
            }
        }