Exemple #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            PageBar1.PageSize = NowPageCount(); // UIBiz.CommonInfo.PageCount;
            PageBar2.PageSize = NowPageCount(); //UIBiz.CommonInfo.PageCount;

            isChangePageSize = this.Search_ReSetPageSize1.isChangePageSize;

            string showCata = Request.QueryString["showCata"] == null ? "" : Request.QueryString["showCata"];

            this.catalogID = Request.QueryString["CatalogID"] == null ? "00000000-0000-0000-0000-000000000000" : Request.QueryString["CatalogID"].ToString();



            //分类检索
            if (showCata == "1")
            {
                List <ObjectRule> rules       = new List <ObjectRule>(1);
                ISecurityObject   securityObj = new SecurityObject(new Guid(this.catalogID), SecurityObjectType.Items);
                ObjectRule        or          = new ObjectRule(securityObj, new User(CurrentUser.UserId), OperatorMethod.Deny);
                rules.Add(or);
                ObjectRule.CheckRules(rules);

                // if (!Catalog.GetCataRight(CurrentUser.UserId, new Guid(this.catalogID)))
                if (rules[0].IsValidate)
                {
                    ShowMessage("您没有权限浏览此分类!");
                    Response.Redirect(FormsAuthentication.DefaultUrl, true);
                }

                //    this.cataNav.Visible = true;

                this.BindCataNav();
            }
            //关键字或高级搜索
            else
            {
                this.keyword   = Request.QueryString["keyword"] == null ? "" : Request.QueryString["keyword"].ToString();
                this.keyword   = Server.UrlDecode(this.keyword);
                this.beginDate = Request.QueryString["BeginDate"].ToString(); //上传时间起始日期
                this.endDate   = Request.QueryString["EndDate"].ToString();   //上传时间结束日期
                //     this.cataNav.Visible = false; ;
            }

            if (isChangePageSize == "1")
            {
                this.Search_ReSetPageSize1.isChangePageSize = string.Empty;
                _curpage = 0;
            }
            if (!Page.IsPostBack || isChangePageSize == "1")
            {
                BindData(PageBar1.PageSize, _curpage);
            }
        }
        protected void btnSearchUser_Click(object sender, EventArgs e)
        {
            QJVRMS.Business.Group userGroup = new QJVRMS.Business.Group(CurrentGroupId);
            DataTable             dt        = userGroup.SelectUsers(this.txtloginName.Text.Trim(), this.txtUserName.Text.Trim());



            Hashtable userRules = new Hashtable();
            Dictionary <int, string> methodDict = WebUI.UIBiz.CommonInfo.GetMethodDict();

            foreach (DataRow row in dt.Rows)
            {
                ISecurityObject   securityObj = new SecurityObject(new Guid(this.hiCurrentCataId.Value), SecurityObjectType.Items);
                List <ObjectRule> rules       = new List <ObjectRule>();
                User user = new User(new Guid(row["userId"].ToString()));

                foreach (KeyValuePair <int, string> methodEntry in methodDict)
                {
                    OperatorMethod method = (OperatorMethod)((int)methodEntry.Key);
                    ObjectRule     rule   = new ObjectRule(securityObj, user, method);

                    rules.Add(rule);
                }

                userRules.Add(user, rules);

                ObjectRule.CheckRules(rules);
            }


            foreach (KeyValuePair <int, string> methodEntry in methodDict)
            {
                string mIndex = methodEntry.Key.ToString();
                dt.Columns.Add(mIndex, typeof(bool));
            }

            foreach (DictionaryEntry entry in userRules)
            {
                User user = entry.Key as User;
                List <ObjectRule> rules = entry.Value as List <ObjectRule>;

                DataRow[] users = dt.Select("userId='" + user.UserId.ToString() + "'");

                foreach (IRule rule in rules)
                {
                    string methodKey = ((int)rule.Method).ToString();
                    users[0][methodKey] = rule.IsValidate;
                }
            }

            this.userList.DataSource = dt;
            this.userList.DataBind();
        }
Exemple #3
0
        protected void rptCategoryTop_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                Repeater rptCatalogChild = (Repeater)e.Item.FindControl("rptCategoryChild");


                DataRowView rowv = (DataRowView)e.Item.DataItem;
                //提取分类ID
                string CategorieId = Convert.ToString(rowv["CatalogID"]);
                //根据分类ID查询该分类下的产品,并绑定产品Repeater
                rptCatalogChild.DataSource = Catalog.GetCatalogTableByParentId(new Guid(CategorieId));
                rptCatalogChild.DataBind();

                HiddenField hf = (HiddenField)e.Item.FindControl("topCatId");
                hf.Value = CategorieId;



                Role role = new Role(new Guid(this.hiRoleId.Value));

                Guid            catId       = new Guid(CategorieId);
                ISecurityObject securityObj = new SecurityObject(catId, SecurityObjectType.Items);

                CheckBox       chb    = (CheckBox)e.Item.FindControl("funTopReadChk");
                OperatorMethod method = OperatorMethod.Deny;
                ObjectRule     rule   = new ObjectRule(securityObj, role, method);
                rule.CheckValidate();
                chb.Checked = rule.IsValidate;

                chb    = (CheckBox)e.Item.FindControl("funTopUpChk");
                method = OperatorMethod.Write;
                rule   = new ObjectRule(securityObj, role, method);
                rule.CheckValidate();
                chb.Checked = rule.IsValidate;

                chb    = (CheckBox)e.Item.FindControl("funTopEditChk");
                method = OperatorMethod.Modify;
                rule   = new ObjectRule(securityObj, role, method);
                rule.CheckValidate();
                chb.Checked = rule.IsValidate;

                chb    = (CheckBox)e.Item.FindControl("funTopDownChk");
                method = OperatorMethod.Download;
                rule   = new ObjectRule(securityObj, role, method);
                rule.CheckValidate();
                chb.Checked = rule.IsValidate;
            }
        }
Exemple #4
0
        /// <summary>
        /// 判断某个用户对某个资源是否具有某个操作权限
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="resourceId"></param>
        /// <returns></returns>
        public bool IsUserResource(Guid userId, Guid resourceId, int method)
        {
            bool              _b     = false;
            DataSet           ds     = this.GetResourceCatalogByItemId(resourceId.ToString());
            int               icount = ds.Tables[0].Rows.Count;
            List <ObjectRule> rules  = new List <ObjectRule>(icount);

            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                ISecurityObject securityObj = new SecurityObject(new Guid(dr["CatalogId"].ToString()), SecurityObjectType.Items);
                ObjectRule      or          = new ObjectRule(securityObj, new User(userId), (OperatorMethod)method);
                rules.Add(or);
            }
            ObjectRule.CheckRules(rules);
            foreach (ObjectRule obj in rules)
            {
                _b = _b || obj.IsValidate;
            }
            return(_b);
        }
        public void WriteObjectRules_ObjectRuleEmpty_ReturnsEmptyString()
        {
            // ARRANGE
            var rule = new ObjectRule
            {
                Name = "hello",
                Guid = Guid.NewGuid().ToString()
            };

            // ACT
            var result = _writer.WriteObjectRules(new List <ObjectDef>
            {
                new ObjectDef
                {
                    Name        = "obj",
                    ObjectRules = new List <ObjectRule>()
                }
            });

            // ASSERT
            Assert.Empty(result);
        }
Exemple #6
0
        protected void rptCategoryChild_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                DataRowView rowv        = (DataRowView)e.Item.DataItem;
                string      CategorieId = Convert.ToString(rowv["CatalogID"]);
                Role        role        = new Role(new Guid(this.hiRoleId.Value));

                HiddenField hf = (HiddenField)e.Item.FindControl("childCatId");
                hf.Value = CategorieId;

                Guid            catId       = new Guid(CategorieId);
                ISecurityObject securityObj = new SecurityObject(catId, SecurityObjectType.Items);

                CheckBox       chb    = (CheckBox)e.Item.FindControl("funChildReadChk");
                OperatorMethod method = OperatorMethod.Deny;
                ObjectRule     rule   = new ObjectRule(securityObj, role, method);
                rule.CheckValidate();
                chb.Checked = rule.IsValidate;

                chb    = (CheckBox)e.Item.FindControl("funChildUpChk");
                method = OperatorMethod.Write;
                rule   = new ObjectRule(securityObj, role, method);
                rule.CheckValidate();
                chb.Checked = rule.IsValidate;

                chb    = (CheckBox)e.Item.FindControl("funChildEditChk");
                method = OperatorMethod.Modify;
                rule   = new ObjectRule(securityObj, role, method);
                rule.CheckValidate();
                chb.Checked = rule.IsValidate;

                chb    = (CheckBox)e.Item.FindControl("funChildDownChk");
                method = OperatorMethod.Download;
                rule   = new ObjectRule(securityObj, role, method);
                rule.CheckValidate();
                chb.Checked = rule.IsValidate;
            }
        }
        public void WriteObjectRules_ObjectRulePassedIn_ReturnsCorrectProperty()
        {
            // ARRANGE
            var rule = new ObjectRule
            {
                Name = "hello",
                Guid = Guid.NewGuid().ToString()
            };

            // ACT
            var result = _writer.WriteObjectRules(new List <ObjectDef>
            {
                new ObjectDef
                {
                    Name        = "obj",
                    ObjectRules = new List <ObjectRule> {
                        rule
                    }
                }
            });

            // ASSERT
            Assert.Contains($"public const string hello = \"{rule.Guid}\";", result);
        }
        public void WriteObjectRules_ObjectRulePassedIn_ReturnsCorrectClassName()
        {
            // ARRANGE
            var rule = new ObjectRule
            {
                Name = "hello",
                Guid = Guid.NewGuid().ToString()
            };

            // ACT
            var result = _writer.WriteObjectRules(new List <ObjectDef>
            {
                new ObjectDef
                {
                    Name        = "obj",
                    ObjectRules = new List <ObjectRule> {
                        rule
                    }
                }
            });

            // ASSERT
            Assert.Contains("public partial class objObjectRules", result);
        }
Exemple #9
0
        protected void btnSetRoles_Click(object sender, EventArgs e)
        {
            List <ObjectRule> rules = new List <ObjectRule>();
            Role           role     = null;
            SecurityObject secObj   = null;
            ObjectRule     newRule;



            //设置大分类的角色权限
            foreach (RepeaterItem item in rptCategoryTop.Items)
            {
                if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
                {
                    HiddenField hf          = (HiddenField)item.FindControl("topCatId");
                    string      CategorieId = hf.Value;

                    Guid objId = new Guid(CategorieId);
                    secObj = new SecurityObject(objId, SecurityObjectType.Items);


                    role = new Role(new Guid(this.hiRoleId.Value));

                    CheckBox chkRead = item.FindControl("funTopReadChk") as CheckBox;
                    newRule            = new ObjectRule(secObj, role, OperatorMethod.Deny);
                    newRule.IsValidate = chkRead.Checked;
                    rules.Add(newRule);

                    CheckBox chkUp = item.FindControl("funTopUpChk") as CheckBox;
                    newRule            = new ObjectRule(secObj, role, OperatorMethod.Write);
                    newRule.IsValidate = chkUp.Checked;
                    rules.Add(newRule);


                    CheckBox chkEdit = item.FindControl("funTopEditChk") as CheckBox;
                    newRule            = new ObjectRule(secObj, role, OperatorMethod.Modify);
                    newRule.IsValidate = chkEdit.Checked;
                    rules.Add(newRule);


                    CheckBox chkDown = item.FindControl("funTopDownChk") as CheckBox;
                    newRule            = new ObjectRule(secObj, role, OperatorMethod.Download);
                    newRule.IsValidate = chkDown.Checked;
                    rules.Add(newRule);


                    //寻找小类

                    Repeater rptCatalogChild = (Repeater)item.FindControl("rptCategoryChild");
                    foreach (RepeaterItem itemChild in rptCatalogChild.Items)
                    {
                        HiddenField hfChild          = (HiddenField)itemChild.FindControl("childCatId");
                        string      childCategorieId = hfChild.Value;

                        Guid objChildId = new Guid(childCategorieId);
                        secObj = new SecurityObject(objChildId, SecurityObjectType.Items);


                        CheckBox chkReadChild = itemChild.FindControl("funChildReadChk") as CheckBox;
                        newRule            = new ObjectRule(secObj, role, OperatorMethod.Deny);
                        newRule.IsValidate = chkReadChild.Checked;
                        rules.Add(newRule);

                        CheckBox chkUpChild = itemChild.FindControl("funChildUpChk") as CheckBox;
                        newRule            = new ObjectRule(secObj, role, OperatorMethod.Write);
                        newRule.IsValidate = chkUpChild.Checked;
                        rules.Add(newRule);


                        CheckBox chkEditChild = itemChild.FindControl("funChildEditChk") as CheckBox;
                        newRule            = new ObjectRule(secObj, role, OperatorMethod.Modify);
                        newRule.IsValidate = chkEditChild.Checked;
                        rules.Add(newRule);


                        CheckBox chkDownChild = itemChild.FindControl("funChildDownChk") as CheckBox;
                        newRule            = new ObjectRule(secObj, role, OperatorMethod.Download);
                        newRule.IsValidate = chkDownChild.Checked;
                        rules.Add(newRule);
                    }
                }
            }



            ArrayList opers = new ArrayList(100);

            if (ObjectRule.SetRules(rules, secObj, opers))
            {
                ShowMessage("角色权限设置成功");
            }
            else
            {
                ShowMessage("角色权限设置失败");
            }
        }
Exemple #10
0
        protected void btnSetUserFun_Click(object sender, EventArgs e)
        {
            List <ObjectRule> rules = new List <ObjectRule>(100);
            User           user     = null;
            SecurityObject secObj   = null;

            Guid objId = new Guid(this.hiCurrentCataId.Value);

            secObj = new SecurityObject(objId, SecurityObjectType.Items);
            ArrayList opers = new ArrayList(100);

            foreach (GridViewRow row in userList.Rows)
            {
                Guid userId = new Guid(userList.DataKeys[row.RowIndex].Value.ToString());
                user = new User(userId);
                opers.Add(user);

                ObjectRule newRule;


                CheckBox chk = row.FindControl("funUpChk") as CheckBox;
                newRule = new ObjectRule(secObj, user, OperatorMethod.Write);
                rules.Add(newRule);
                if (chk.Checked)
                {
                    newRule.IsValidate = true;
                }
                else
                {
                    newRule.IsValidate = false;
                }

                CheckBox echk = row.FindControl("funEditChk") as CheckBox;
                newRule = new ObjectRule(secObj, user, OperatorMethod.Modify);
                rules.Add(newRule);
                if (echk.Checked)
                {
                    newRule.IsValidate = true;
                }
                else
                {
                    newRule.IsValidate = false;
                }

                CheckBox dchk = row.FindControl("funReadChk") as CheckBox;
                newRule = new ObjectRule(secObj, user, OperatorMethod.Deny);
                rules.Add(newRule);
                if (dchk.Checked)
                {
                    newRule.IsValidate = true;
                }
                else
                {
                    newRule.IsValidate = false;
                }

                CheckBox downChk = row.FindControl("funDownChk") as CheckBox;
                newRule = new ObjectRule(secObj, user, OperatorMethod.Download);
                rules.Add(newRule);
                newRule.IsValidate = downChk.Checked;

                //针对当前类的子类设置权限(子类应自动继承父类权限)
                DataTable childCatalog = Catalog.GetCatalogTableByParentId(objId);
                foreach (DataRow cata in childCatalog.Rows)
                {
                    SecurityObject cSecObj = new SecurityObject(new Guid(cata["catalogId"].ToString()),
                                                                SecurityObjectType.Items);

                    ObjectRule cOrUp = new ObjectRule(cSecObj, user, OperatorMethod.Write);
                    cOrUp.IsValidate = chk.Checked;


                    rules.Add(cOrUp);

                    ObjectRule cOrEdit = new ObjectRule(cSecObj, user, OperatorMethod.Modify);
                    cOrEdit.IsValidate = echk.Checked;

                    rules.Add(cOrEdit);


                    ObjectRule cOrDeny = new ObjectRule(cSecObj, user, OperatorMethod.Deny);
                    cOrDeny.IsValidate = dchk.Checked;
                    rules.Add(cOrDeny);


                    ObjectRule cOrDown = new ObjectRule(cSecObj, user, OperatorMethod.Download);
                    cOrDown.IsValidate = downChk.Checked;
                    rules.Add(cOrDown);
                }
            }

            if (ObjectRule.SetRules(rules, secObj, opers))
            {
                ShowMessage("用户权限设置成功");
            }
            else
            {
                ShowMessage("用户权限设置失败");
            }
        }
Exemple #11
0
        //设定权限
        protected void btnSetRoleFun_Click(object sender, EventArgs e)
        {
            List <ObjectRule> rules = new List <ObjectRule>(100);
            Role           role     = null;
            SecurityObject secObj   = null;

            Guid objId = new Guid(this.hiCurrentCataId.Value);

            secObj = new SecurityObject(objId, SecurityObjectType.Items);
            ArrayList opers = new ArrayList(100);

            foreach (GridViewRow row in roleGroupList.Rows)
            {
                Guid roleId = new Guid(roleGroupList.DataKeys[row.RowIndex].Value.ToString());
                role        = new Role();
                role.RoleId = roleId;
                opers.Add(role);

                ObjectRule newRule;

                CheckBox chkRead = row.FindControl("funReadChk") as CheckBox;
                newRule = new ObjectRule(secObj, role, OperatorMethod.Deny);
                rules.Add(newRule);
                newRule.IsValidate = chkRead.Checked;



                CheckBox chkWrite = row.FindControl("funUpChk") as CheckBox;
                newRule = new ObjectRule(secObj, role, OperatorMethod.Write);
                rules.Add(newRule);
                newRule.IsValidate = chkWrite.Checked;


                CheckBox chkEdit = row.FindControl("funEditChk") as CheckBox;
                newRule = new ObjectRule(secObj, role, OperatorMethod.Modify);
                rules.Add(newRule);
                newRule.IsValidate = chkEdit.Checked;

                CheckBox chkDownload = row.FindControl("funDownChk") as CheckBox;
                newRule = new ObjectRule(secObj, role, OperatorMethod.Download);
                rules.Add(newRule);
                newRule.IsValidate = chkDownload.Checked;

                //针对当前类的子类设置权限(子类应自动继承父类权限)
                DataTable childCatalog = Catalog.GetCatalogTableByParentId(objId);
                foreach (DataRow cata in childCatalog.Rows)
                {
                    SecurityObject cSecObj = new SecurityObject(new Guid(cata["catalogId"].ToString()),
                                                                SecurityObjectType.Items);

                    ObjectRule cOrRead = new ObjectRule(cSecObj, role, OperatorMethod.Deny);
                    cOrRead.IsValidate = chkRead.Checked;
                    ObjectRule cOrWrite = new ObjectRule(cSecObj, role, OperatorMethod.Write);
                    cOrWrite.IsValidate = chkWrite.Checked;
                    ObjectRule cOrEdit = new ObjectRule(cSecObj, role, OperatorMethod.Modify);
                    cOrEdit.IsValidate = chkEdit.Checked;
                    ObjectRule cOrDown = new ObjectRule(cSecObj, role, OperatorMethod.Download);
                    cOrDown.IsValidate = chkDownload.Checked;

                    rules.Add(cOrRead);
                    rules.Add(cOrWrite);
                    rules.Add(cOrEdit);
                    rules.Add(cOrDown);
                }
            }

            if (ObjectRule.SetRules(rules, secObj, opers))
            {
                ShowMessage("角色权限设置成功");
            }
            else
            {
                ShowMessage("角色权限设置失败");
            }
        }
Exemple #12
0
        /// <summary>
        /// 绑定用户组定义功能
        /// </summary>
        void BindRoleControlList()
        {
            Dictionary <int, string> methodDict = WebUI.UIBiz.CommonInfo.GetMethodDict();
            //注意修改 当为superadmin时
            RoleCollection roles = Role.GetRoleCollection(CurrentGroupId);


            Hashtable roleRules = new Hashtable();

            foreach (Role role in roles)
            {
                ISecurityObject   securityObj = new SecurityObject(new Guid(this.hiCurrentCataId.Value), SecurityObjectType.Items);
                List <ObjectRule> rules       = new List <ObjectRule>();

                foreach (KeyValuePair <int, string> methodEntry in methodDict)
                {
                    OperatorMethod method = (OperatorMethod)((int)methodEntry.Key);
                    ObjectRule     rule   = new ObjectRule(securityObj, role, method);

                    rules.Add(rule);
                }

                roleRules.Add(role, rules);

                ObjectRule.CheckRules(rules);
            }

            DataTable roleMethod = new DataTable();

            DataColumn dc = new DataColumn("roleName");

            roleMethod.Columns.Add(dc);

            dc = new DataColumn("roleId");
            roleMethod.Columns.Add(dc);

            foreach (KeyValuePair <int, string> methodEntry in methodDict)
            {
                string mIndex = methodEntry.Key.ToString();
                roleMethod.Columns.Add(mIndex, typeof(bool));
            }


            //foreach (KeyValuePair<int, string> methodEntry in methodDict)
            //{
            //   TemplateField field = new TemplateField();
            //  //  CheckBoxField field = new CheckBoxField();
            //    WebUI.UIBiz.GridViewTempla template = new WebUI.UIBiz.GridViewTempla(ListItemType.Item, string.Empty);

            //    field.HeaderText = methodEntry.Value.ToString();
            //   // field.DataField = methodEntry.Key.ToString();
            //   // field.ReadOnly = false;

            //   field.ItemTemplate = template;
            //    roleGroupList.Columns.Add(field);

            //    DataColumn methodDc = new DataColumn(methodEntry.Key.ToString());
            //    roleMethod.Columns.Add(methodDc);
            //}



            foreach (DictionaryEntry entry in roleRules)
            {
                Role role = entry.Key as Role;
                List <ObjectRule> rules = entry.Value as List <ObjectRule>;

                DataRow dr = roleMethod.NewRow();
                dr["roleName"] = role.RoleName;
                dr["roleId"]   = role.RoleId.ToString();

                foreach (IRule rule in rules)
                {
                    string methodKey = ((int)rule.Method).ToString();
                    dr[methodKey] = rule.IsValidate;
                }

                roleMethod.Rows.Add(dr);
            }

            DataView dv = roleMethod.DefaultView;

            dv.Sort = "RoleName";
            roleGroupList.DataSource = dv;
            roleGroupList.DataBind();



            //   TemplateColumn roleColumn = new TemplateColumn();
        }