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 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 ActionResult ScanRole(int id)
        {
            // 创建物业总公司用户角色模型
            CompanyUserRoleModel companyUserRoleModel = new CompanyUserRoleModel();

            ICompanyUserBLL companyUserBll = BLLFactory <ICompanyUserBLL> .GetBLL("CompanyUserBLL");

            // 根据指定id值获取实体对象
            var companyUserInfo = companyUserBll.GetEntity(index => index.Id == id && index.DelFlag == ConstantParam.DEL_FLAG_DEFAULT);

            companyUserRoleModel.User = new CompanyUserModel()
            {
                UserName      = companyUserInfo.UserName,
                CompanyUserId = companyUserInfo.Id,
                TrueName      = companyUserInfo.TrueName
            };

            // 获取物业总公司用户已分配的角色id列表
            var selectedRoleList = companyUserInfo.CompanyUserRoles.Select(m => m.RoleId).ToList();

            companyUserRoleModel.RoleIds = selectedRoleList;

            // 获取所有物业总公司角色
            ICompanyRoleBLL companyRoleBll = BLLFactory <ICompanyRoleBLL> .GetBLL("CompanyRoleBLL");

            //排序
            var sortModel = this.SettingSorting("Id", false);
            var roleList  = companyRoleBll.GetList(p => true, sortModel.SortName, sortModel.IsAsc).ToList();

            companyUserRoleModel.RoleList = roleList;

            return(View(companyUserRoleModel));
        }
        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 ContentResult RemoteCheckExist(int roleId, string roleName)
        {
            ICompanyRoleBLL companyRoleBll = BLLFactory <ICompanyRoleBLL> .GetBLL("CompanyRoleBLL");

            //获取当前用户所属总公司ID
            int currentCompanyId = GetSessionModel().CompanyId.Value;

            //如果角色存在,验证不通过
            if (companyRoleBll.Exist(m => m.RoleName == roleName && m.CompanyId == currentCompanyId && m.Id != roleId))
            {
                return(Content("false"));
            }
            else//角色不存在,验证通过
            {
                return(Content("true"));
            }
        }
        public ActionResult RoleList(RoleSearchModel model)
        {
            ICompanyRoleBLL companyRoleBll = BLLFactory <ICompanyRoleBLL> .GetBLL("CompanyRoleBLL");

            //查询条件
            Expression <Func <T_CompanyRole, bool> > where = u => string.IsNullOrEmpty(model.RoleName) ? true : u.RoleName.Contains(model.RoleName);
            //获取当前用户所属总公司ID
            int currentCompanyId = GetSessionModel().CompanyId.Value;

            //查询条件:当前用户所在总公司
            where = where.And(u => u.CompanyId == currentCompanyId);
            //排序
            var sortModel = this.SettingSorting("Id", false);
            var list      = companyRoleBll.GetPageList(where, sortModel.SortName, sortModel.IsAsc, model.PageIndex);

            return(View(list));
        }
        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));
        }
Beispiel #9
0
        public JsonResult SetCompanyAdministrator(CompanyUserModel model)
        {
            JsonModel jm = new JsonModel();

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

                T_CompanyUser companyUser = new T_CompanyUser()
                {
                    CompanyId = model.CompanyId,
                    UserName  = model.UserName,
                    Email     = model.Email,
                    Password  = PropertyUtils.GetMD5Str(model.Password),
                    IsMgr     = ConstantParam.USER_ROLE_MGR,
                    DelFlag   = ConstantParam.DEL_FLAG_DEFAULT,
                };

                //为管理员添加角色
                ICompanyRoleBLL roleBll = BLLFactory <ICompanyRoleBLL> .GetBLL("CompanyRoleBLL");

                var role = roleBll.GetEntity(r => r.IsSystem == ConstantParam.USER_ROLE_MGR && r.CompanyId == model.CompanyId);
                if (role != null)
                {
                    companyUser.CompanyUserRoles.Add(new R_CompanyUserRole()
                    {
                        RoleId = role.Id,
                    });
                }
                //创建管理员
                propertyUserBll.Save(companyUser);

                //日志记录
                jm.Content = PropertyUtils.ModelToJsonString(model);
            }
            else
            {
                jm.Msg = ConstantParam.JSON_RESULT_MODEL_CHECK_ERROR;
            }
            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));
        }
Beispiel #11
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"));
            }
        }
        public ActionResult ConfigRole(int id)
        {
            // 创建物业总公司用户角色模型
            CompanyUserRoleModel companyUserRoleModel = new CompanyUserRoleModel();

            // 获取指定id的物业总公司用户模型
            ICompanyUserBLL companyUserBll = BLLFactory <ICompanyUserBLL> .GetBLL("CompanyUserBLL");

            T_CompanyUser companyUser = companyUserBll.GetEntity(m => m.Id == id && m.DelFlag == ConstantParam.DEL_FLAG_DEFAULT);

            companyUserRoleModel.User = new CompanyUserModel()
            {
                CompanyUserId = companyUser.Id,
                UserName      = companyUser.UserName,
                TrueName      = companyUser.TrueName,
                Tel           = companyUser.Tel,
                Phone         = companyUser.Phone,
                Memo          = companyUser.Memo,
                Email         = companyUser.Email
            };

            // 获取本总公司中所有的角色
            ICompanyRoleBLL companyRoleBll = BLLFactory <ICompanyRoleBLL> .GetBLL("CompanyRoleBLL");

            //排序
            var sortModel = this.SettingSorting("Id", false);
            var roleList  = companyRoleBll.GetList(p => p.CompanyId == companyUser.CompanyId &&
                                                   p.IsSystem == ConstantParam.USER_ROLE_DEFAULT, sortModel.SortName, sortModel.IsAsc).ToList();

            companyUserRoleModel.RoleList = roleList;

            //获取该总公司用户已分配的角色id的集合
            companyUserRoleModel.RoleIds = companyUser.CompanyUserRoles.Select(m => m.RoleId).ToList();

            return(View(companyUserRoleModel));
        }