Exemple #1
0
        /// <summary>
        /// 设置用户角色(单个用户)
        /// </summary>
        /// <param name="userId">用户主键</param>
        /// <param name="roleIds">角色id,多个逗号隔开</param>
        public bool SetRoleSingle(int userId, string roleIds)
        {
            DataTable dt_user_role_old = new ZGZY.BLL.Role().GetRoleByUserId(userId);      //用户之前拥有的角色
            List <ZGZY.Model.UserRole> role_addList    = new List <ZGZY.Model.UserRole>(); //需要插入角色的sql语句集合
            List <ZGZY.Model.UserRole> role_deleteList = new List <ZGZY.Model.UserRole>(); //需要删除角色的sql语句集合

            string[] str_role = roleIds.Trim(',').Split(',');                              //传过来用户勾选的角色(有去勾的也有新勾选的)

            ZGZY.Model.UserRole userroledelete = null;
            ZGZY.Model.UserRole userroleadd    = null;
            //用户去掉勾选的角色(要删除本用户的角色)
            for (int i = 0; i < dt_user_role_old.Rows.Count; i++)
            {
                //等于-1说明用户去掉勾选了某个角色 需要删除
                if (Array.IndexOf(str_role, dt_user_role_old.Rows[i]["roleid"].ToString()) == -1)
                {
                    userroledelete        = new ZGZY.Model.UserRole();
                    userroledelete.RoleId = Convert.ToInt32(dt_user_role_old.Rows[i]["roleid"].ToString());
                    userroledelete.UserId = userId;
                    role_deleteList.Add(userroledelete);
                }
            }

            //用户新勾选的角色(要添加本用户的角色)
            if (!string.IsNullOrEmpty(roleIds))
            {
                for (int j = 0; j < str_role.Length; j++)
                {
                    //等于0那么原来的角色没有 是用户新勾选的
                    if (dt_user_role_old.Select("roleid = '" + str_role[j] + "'").Length == 0)
                    {
                        userroleadd        = new ZGZY.Model.UserRole();
                        userroleadd.UserId = userId;
                        userroleadd.RoleId = Convert.ToInt32(str_role[j]);
                        role_addList.Add(userroleadd);
                    }
                }
            }
            if (role_addList.Count == 0 && role_deleteList.Count == 0)
            {
                return(true);
            }
            else
            {
                return(dal.SetRoleSingle(role_addList, role_deleteList));
            }
        }
Exemple #2
0
        /// <summary>
        /// 获取分页数据
        /// </summary>
        /// <param name="tableName">表名</param>
        /// <param name="columns">要取的列名(逗号分开)</param>
        /// <param name="order">排序</param>
        /// <param name="pageSize">每页大小</param>
        /// <param name="pageIndex">当前页</param>
        /// <param name="where">查询条件</param>
        /// <param name="totalCount">总记录数</param>
        public string GetPager(string tableName, string columns, string order, int pageSize, int pageIndex, string where, out int totalCount)
        {
            DataTable dt = ZGZY.Common.SqlPagerHelper.GetPager(tableName, columns, order, pageSize, pageIndex, where, out totalCount);

            dt.Columns.Add(new DataColumn("UserRoleId"));
            dt.Columns.Add(new DataColumn("UserRole"));
            dt.Columns.Add(new DataColumn("UserDepartmentId"));
            dt.Columns.Add(new DataColumn("UserDepartment"));
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                //这么写多连了20*2次数据库,待改进
                DataTable dtrole       = new ZGZY.BLL.Role().GetRoleByUserId(Convert.ToInt32(dt.Rows[i]["Id"]));
                DataTable dtdepartment = new ZGZY.BLL.Department().GetDepartmentByUserId(Convert.ToInt32(dt.Rows[i]["Id"]));
                dt.Rows[i]["UserRoleId"]       = ZGZY.Common.JsonHelper.ColumnToJson(dtrole, 0);
                dt.Rows[i]["UserRole"]         = ZGZY.Common.JsonHelper.ColumnToJson(dtrole, 1);
                dt.Rows[i]["UserDepartmentId"] = ZGZY.Common.JsonHelper.ColumnToJson(dtdepartment, 0);
                dt.Rows[i]["UserDepartment"]   = ZGZY.Common.JsonHelper.ColumnToJson(dtdepartment, 1);
            }
            return(ZGZY.Common.JsonHelper.ToJson(dt));
        }
Exemple #3
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "application/json";
            string action = context.Request.Params["action"];

            ZGZY.Model.UserOperateLog userOperateLog = null;   //操作日志对象
            try
            {
                ZGZY.Model.User user = ZGZY.Common.UserHelper.GetUser(context);   //获取cookie里的用户对象
                userOperateLog          = new Model.UserOperateLog();
                userOperateLog.UserIp   = context.Request.UserHostAddress;
                userOperateLog.UserName = user.UserId;

                switch (action)
                {
                case "getall":
                    context.Response.Write(new ZGZY.BLL.Role().GetAllRole("1=1"));
                    break;

                case "search":
                    string strWhere  = "1=1";
                    string sort      = context.Request.Params["sort"];  //排序列
                    string order     = context.Request.Params["order"]; //排序方式 asc或者desc
                    int    pageindex = int.Parse(context.Request.Params["page"]);
                    int    pagesize  = int.Parse(context.Request.Params["rows"]);

                    int    totalCount;    //输出参数
                    string strJson = new ZGZY.BLL.Role().GetPager("tbRole", "Id,RoleName,AddDate,ModifyDate,Description", sort + " " + order, pagesize, pageindex, strWhere, out totalCount);
                    context.Response.Write("{\"total\": " + totalCount.ToString() + ",\"rows\":" + strJson + "}");
                    userOperateLog.OperateInfo = "查询角色";
                    userOperateLog.IfSuccess   = true;
                    userOperateLog.Description = "查询条件:" + strWhere + " 排序:" + sort + " " + order + " 页码/每页大小:" + pageindex + " " + pagesize;
                    //ZGZY.BLL.UserOperateLog.InsertOperateInfo(userOperateLog);
                    break;

                case "searchRoleUser":
                    int    roleUserId        = int.Parse(context.Request.Params["roleId"]);
                    string sortRoleUser      = context.Request.Params["sort"];  //排序列
                    string orderRoleUser     = context.Request.Params["order"]; //排序方式 asc或者desc
                    int    pageindexRoleUser = int.Parse(context.Request.Params["page"]);
                    int    pagesizeRoleUser  = int.Parse(context.Request.Params["rows"]);

                    string strJsonRoleUser = new ZGZY.BLL.Role().GetPagerRoleUser(roleUserId, sortRoleUser + " " + orderRoleUser, pagesizeRoleUser, pageindexRoleUser);
                    context.Response.Write(strJsonRoleUser);
                    userOperateLog.OperateInfo = "查询角色用户";
                    userOperateLog.IfSuccess   = true;
                    userOperateLog.Description = "查询角色Id:" + roleUserId + " 排序:" + sortRoleUser + " " + orderRoleUser + " 页码/每页大小:" + pageindexRoleUser + " " + pagesizeRoleUser;
                    //ZGZY.BLL.UserOperateLog.InsertOperateInfo(userOperateLog);
                    break;

                case "add":
                    if (user != null && new ZGZY.BLL.Authority().IfAuthority("role", "add", user.Id))
                    {
                        string ui_role_rolename_add    = context.Request.Params["ui_role_rolename_add"] ?? "";
                        string ui_role_description_add = context.Request.Params["ui_role_description_add"] ?? "";

                        ZGZY.Model.Role roleAdd = new Model.Role();
                        roleAdd.RoleName    = ui_role_rolename_add;
                        roleAdd.Description = ui_role_description_add.Trim();

                        int roleId = new ZGZY.BLL.Role().AddRole(roleAdd);
                        if (roleId > 0)
                        {
                            userOperateLog.OperateInfo = "添加角色";
                            userOperateLog.IfSuccess   = true;
                            userOperateLog.Description = "添加成功,角色主键:" + roleId;
                            context.Response.Write("{\"msg\":\"添加成功!\",\"success\":true}");
                        }
                        else
                        {
                            userOperateLog.OperateInfo = "添加角色";
                            userOperateLog.IfSuccess   = false;
                            userOperateLog.Description = "添加失败";
                            context.Response.Write("{\"msg\":\"添加失败!\",\"success\":false}");
                        }
                    }
                    else
                    {
                        userOperateLog.OperateInfo = "添加角色";
                        userOperateLog.IfSuccess   = false;
                        userOperateLog.Description = "无权限,请联系管理员";
                        context.Response.Write("{\"msg\":\"无权限,请联系管理员!\",\"success\":false}");
                    }
                    //ZGZY.BLL.UserOperateLog.InsertOperateInfo(userOperateLog);
                    break;

                case "edit":
                    if (user != null && new ZGZY.BLL.Authority().IfAuthority("role", "edit", user.Id))
                    {
                        int    id                       = Convert.ToInt32(context.Request.Params["id"]);
                        string originalName             = context.Request.Params["originalName"] ?? "";
                        string ui_role_rolename_edit    = context.Request.Params["ui_role_rolename_edit"] ?? "";
                        string ui_role_description_edit = context.Request.Params["ui_role_description_edit"] ?? "";

                        ZGZY.Model.Role roleEdit = new Model.Role();
                        roleEdit.Id          = id;
                        roleEdit.RoleName    = ui_role_rolename_edit;
                        roleEdit.Description = ui_role_description_edit.Trim();

                        if (new ZGZY.BLL.Role().EditRole(roleEdit, originalName))
                        {
                            userOperateLog.OperateInfo = "修改角色";
                            userOperateLog.IfSuccess   = true;
                            userOperateLog.Description = "修改成功,角色主键:" + roleEdit.Id;
                            context.Response.Write("{\"msg\":\"修改成功!\",\"success\":true}");
                        }
                        else
                        {
                            userOperateLog.OperateInfo = "修改角色";
                            userOperateLog.IfSuccess   = false;
                            userOperateLog.Description = "修改失败";
                            context.Response.Write("{\"msg\":\"修改失败!\",\"success\":false}");
                        }
                    }
                    else
                    {
                        userOperateLog.OperateInfo = "修改角色";
                        userOperateLog.IfSuccess   = false;
                        userOperateLog.Description = "无权限,请联系管理员";
                        context.Response.Write("{\"msg\":\"无权限,请联系管理员!\",\"success\":false}");
                    }
                    //ZGZY.BLL.UserOperateLog.InsertOperateInfo(userOperateLog);
                    break;

                case "delete":
                    if (user != null && new ZGZY.BLL.Authority().IfAuthority("role", "delete", user.Id))
                    {
                        int id = Convert.ToInt32(context.Request.Params["id"]);
                        if (new ZGZY.BLL.Role().DeleteRole(id))
                        {
                            userOperateLog.OperateInfo = "删除角色";
                            userOperateLog.IfSuccess   = true;
                            userOperateLog.Description = "删除成功,角色主键:" + id;
                            context.Response.Write("{\"msg\":\"删除成功!\",\"success\":true}");
                        }
                        else
                        {
                            userOperateLog.OperateInfo = "删除角色";
                            userOperateLog.IfSuccess   = false;
                            userOperateLog.Description = "删除失败";
                            context.Response.Write("{\"msg\":\"删除失败!\",\"success\":false}");
                        }
                    }
                    else
                    {
                        userOperateLog.OperateInfo = "删除角色";
                        userOperateLog.IfSuccess   = false;
                        userOperateLog.Description = "无权限,请联系管理员";
                        context.Response.Write("{\"msg\":\"无权限,请联系管理员!\",\"success\":false}");
                    }
                    //ZGZY.BLL.UserOperateLog.InsertOperateInfo(userOperateLog);
                    break;

                case "authorize":
                    if (user != null && new ZGZY.BLL.Authority().IfAuthority("role", "authorize", user.Id))
                    {
                        int    roleId       = Convert.ToInt32(context.Request.Params["roleId"]); //要授权的角色id
                        string menuButtonId = context.Request.Params["menuButtonId"].Trim(',');  //具体的菜单和按钮权限
                        if (new ZGZY.BLL.Role().Authorize(roleId, menuButtonId))
                        {
                            userOperateLog.OperateInfo = "角色授权";
                            userOperateLog.IfSuccess   = true;
                            userOperateLog.Description = "授权成功,菜单/按钮Id:" + menuButtonId;
                            context.Response.Write("{\"msg\":\"授权成功!\",\"success\":true}");
                        }
                        else
                        {
                            userOperateLog.OperateInfo = "角色授权";
                            userOperateLog.IfSuccess   = false;
                            userOperateLog.Description = "授权失败";
                            context.Response.Write("{\"msg\":\"授权失败!\",\"success\":false}");
                        }
                    }
                    else
                    {
                        userOperateLog.OperateInfo = "角色授权";
                        userOperateLog.IfSuccess   = false;
                        userOperateLog.Description = "无权限,请联系管理员";
                        context.Response.Write("{\"msg\":\"无权限,请联系管理员!\",\"success\":false}");
                    }
                    //ZGZY.BLL.UserOperateLog.InsertOperateInfo(userOperateLog);
                    break;

                default:
                    context.Response.Write("{\"msg\":\"参数错误!\",\"success\":false}");
                    break;
                }
            }
            catch (Exception ex)
            {
                context.Response.Write("{\"msg\":\"" + ZGZY.Common.JsonHelper.StringFilter(ex.Message) + "\",\"success\":false}");
                userOperateLog.OperateInfo = "角色功能异常";
                userOperateLog.IfSuccess   = false;
                userOperateLog.Description = ZGZY.Common.JsonHelper.StringFilter(ex.Message);
                //ZGZY.BLL.UserOperateLog.InsertOperateInfo(userOperateLog);
            }
        }