Example #1
0
    void GetData()
    {
        string UType = Request["UType"];
        string Uid   = Request["Uid"];
        CUser  user  = null;
        CRole  role  = null;

        if (UType == "0") //用户
        {
            if (!string.IsNullOrEmpty(Uid))
            {
                user = (CUser)Global.GetCtx(Session["TopCompany"].ToString()).UserMgr.Find(new Guid(Uid));
            }
        }
        else if (UType == "1") //角色
        {
            if (!string.IsNullOrEmpty(Uid))
            {
                role = (CRole)m_Company.RoleMgr.Find(new Guid(Uid));
            }
        }
        string FW_Table_id = Request["FW_Table_id"];
        CTable table       = null;

        if (!string.IsNullOrEmpty(FW_Table_id))
        {
            table = (CTable)Global.GetCtx(Session["TopCompany"].ToString()).TableMgr.Find(new Guid(FW_Table_id));
        }

        string sData  = "";
        int    iCount = 0;

        if (table != null)
        {
            List <CBaseObject> lstObj = table.ColumnMgr.GetList();
            iCount = lstObj.Count;

            foreach (CBaseObject obj in lstObj)
            {
                CColumn column = (CColumn)obj;
                int     iRead  = 0;
                int     iWrite = 0;
                if (UType == "0" && user != null) //用户
                {
                    //管理员有所有权限
                    if (user.IsRole("管理员"))
                    {
                        iRead  = 1;
                        iWrite = 1;
                    }
                    else
                    {
                        CColumnAccessInUser caiu = user.ColumnAccessInUserMgr.FindByColumn(column.Id);
                        if (caiu != null)
                        {
                            if (caiu.Access == AccessType.read)
                            {
                                iRead = 1;
                            }
                            else if (caiu.Access == AccessType.write)
                            {
                                iRead  = 1;
                                iWrite = 1;
                            }
                        }
                        else  //没有手动设置字段权限, 则默认都可写
                        {
                            iRead  = 1;
                            iWrite = 1;
                        }
                    }
                }
                else if (UType == "1" && role != null) //用户
                {
                    //管理员有所有权限
                    if (role.Name == "管理员")
                    {
                        iRead  = 1;
                        iWrite = 1;
                    }
                    else
                    {
                        CColumnAccessInRole cair = role.ColumnAccessInRoleMgr.FindByColumn(column.Id);
                        if (cair != null)
                        {
                            if (cair.Access == AccessType.read)
                            {
                                iRead = 1;
                            }
                            else if (cair.Access == AccessType.write)
                            {
                                iRead  = 1;
                                iWrite = 1;
                            }
                        }
                        else  //没有手动设置字段权限, 则默认都可写
                        {
                            iRead  = 1;
                            iWrite = 1;
                        }
                    }
                }
                string sRow = string.Format("\"id\":\"{0}\",\"Name\":\"{1}\",\"Read\":\"{2}\",\"Write\":\"{3}\",", column.Id, column.Name, iRead, iWrite);

                sRow   = "{" + sRow + "},";
                sData += sRow;
            }
        }
        sData = sData.TrimEnd(",".ToCharArray());
        sData = "[" + sData + "]";
        string sJson = string.Format("{{\"Rows\":{0},\"Total\":\"{1}\"}}"
                                     , sData, iCount);

        Response.Write(sJson);
    }
Example #2
0
    void PostData()
    {
        string UType       = Request["UType"];
        string Uid         = Request["Uid"];
        string FW_Table_id = Request["FW_Table_id"];
        string postData    = Request["postData"];
        CUser  user        = null;
        CRole  role        = null;
        CTable table       = (CTable)Global.GetCtx(Session["TopCompany"].ToString()).TableMgr.Find(new Guid(FW_Table_id));

        if (UType == "0") //用户
        {
            user = (CUser)Global.GetCtx(Session["TopCompany"].ToString()).UserMgr.Find(new Guid(Uid));
            //管理员有所有权限,不能修改!
            if (user.IsRole("管理员"))
            {
                Response.Write("管理员有所有权限,不能修改!");
                return;
            }
            //
            string[] arr1 = postData.Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
            foreach (string sItem1 in arr1)
            {
                string[]            arr2     = sItem1.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                Guid                columnid = new Guid(arr2[0]);
                CColumnAccessInUser caiu     = user.ColumnAccessInUserMgr.FindByColumn(columnid);
                if (caiu == null)
                {
                    caiu = new CColumnAccessInUser();
                    caiu.FW_Column_id = columnid;
                    caiu.B_User_id    = user.Id;
                    if (arr2[2] == "1")
                    {
                        caiu.Access = AccessType.write;
                    }
                    else if (arr2[1] == "1")
                    {
                        caiu.Access = AccessType.read;
                    }
                    else
                    {
                        caiu.Access = AccessType.forbide;
                    }

                    CUser user0 = (CUser)Session["User"];
                    caiu.Creator = user0.Id;
                    user.ColumnAccessInUserMgr.AddNew(caiu);
                }
                else
                {
                    if (arr2[2] == "1")
                    {
                        caiu.Access = AccessType.write;
                    }
                    else if (arr2[1] == "1")
                    {
                        caiu.Access = AccessType.read;
                    }
                    else
                    {
                        caiu.Access = AccessType.forbide;
                    }

                    CUser user0 = (CUser)Session["User"];
                    caiu.Updator = user0.Id;
                    user.ColumnAccessInUserMgr.Update(caiu);
                }
            }
            if (!user.ColumnAccessInUserMgr.Save(true))
            {
                Response.Write("保存失败!");
            }
        }
        else if (UType == "1") //角色
        {
            role = (CRole)m_Company.RoleMgr.Find(new Guid(Uid));
            //管理员有所有权限,不能修改!
            if (role.Name == "管理员")
            {
                Response.Write("管理员有所有权限,不能修改!");
                return;
            }
            //
            string[] arr1 = postData.Split(";".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
            foreach (string sItem1 in arr1)
            {
                string[]            arr2     = sItem1.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                Guid                columnid = new Guid(arr2[0]);
                CColumnAccessInRole cair     = role.ColumnAccessInRoleMgr.FindByColumn(columnid);
                if (cair == null)
                {
                    cair = new CColumnAccessInRole();
                    cair.FW_Column_id = columnid;
                    cair.B_Role_id    = role.Id;
                    if (arr2[2] == "1")
                    {
                        cair.Access = AccessType.write;
                    }
                    else if (arr2[1] == "1")
                    {
                        cair.Access = AccessType.read;
                    }
                    else
                    {
                        cair.Access = AccessType.forbide;
                    }

                    CUser user0 = (CUser)Session["User"];
                    cair.Creator = user0.Id;
                    role.ColumnAccessInRoleMgr.AddNew(cair);
                }
                else
                {
                    if (arr2[2] == "1")
                    {
                        cair.Access = AccessType.write;
                    }
                    else if (arr2[1] == "1")
                    {
                        cair.Access = AccessType.read;
                    }
                    else
                    {
                        cair.Access = AccessType.forbide;
                    }

                    CUser user0 = (CUser)Session["User"];
                    cair.Updator = user0.Id;
                    role.ColumnAccessInRoleMgr.Update(cair);
                }
            }
            if (!role.ColumnAccessInRoleMgr.Save(true))
            {
                Response.Write("保存失败!");
            }
        }
    }