Example #1
0
        protected void createTabXML()
        {
            FieldPermissions allFieldPermissions = new FieldPermissions();

            DataTable permissionDataTable          = TabPermissionDataTable;
            DataTable permissionConditionDataTable = PermissionConditionDataTable;

            foreach (DataRow drPermission in permissionDataTable.Rows)
            {
                string OnField   = drPermission[Constants.PermissionField.SPFieldName].ToString();
                bool   IsDefault = Helper.ConvertToBool(drPermission[Constants.PermissionField.IsDefault].ToString());
                Enums.PermissionLevel permissionLevel = (Enums.PermissionLevel)(Convert.ToInt32(drPermission[Constants.PermissionField.PermissionID].ToString()));
                string         OnForms                = drPermission[Constants.PermissionField.OnFormIDs].ToString();
                string         ForSPPrinciples        = drPermission[Constants.PermissionField.SPPrinciples].ToString();
                Enums.Operator BySPPrinciplesOperator = (Enums.Operator)(Convert.ToInt32(drPermission[Constants.PermissionField.SPPrinciplesOperatorID].ToString()));
                int            permissionID           = Convert.ToInt32(drPermission[Constants.RowID]);

                FieldPermission perm1 = new FieldPermission(new Field(OnField), permissionLevel, FieldPermission.ParseForms(OnForms), ForSPPrinciples, BySPPrinciplesOperator);


                DataTable conditionOfSelectedPermission = Helper.GetViewFromDataTable(permissionConditionDataTable, permissionID, Constants.ConditionField.PermissionRowID).ToTable();

                if (conditionOfSelectedPermission != null && conditionOfSelectedPermission.Rows.Count > 0)
                {
                    foreach (DataRow drCondition in conditionOfSelectedPermission.Rows)
                    {
                        string         OnField2        = drCondition[Constants.ConditionField.SPFieldName].ToString();
                        Enums.Operator ByFieldOperator = (Enums.Operator)Convert.ToInt32(drCondition[Constants.ConditionField.SPFieldOperatorID].ToString());
                        object         Value           = drCondition[Constants.ConditionField.Value].ToString();

                        perm1.Conditions.Add(new Condition(new Field(OnField2), ByFieldOperator, Value));
                    }
                }

                allFieldPermissions.Add(perm1);
            }


            SPSecurity.RunWithElevatedPrivileges(delegate
            {
                using (SPSite objSite = new SPSite(SPContext.Current.Web.Url.ToString()))
                {
                    using (SPWeb objWeb = objSite.OpenWeb())
                    {
                        SPList list = objWeb.Lists[new Guid(Request.QueryString["List"])];

                        objWeb.AllowUnsafeUpdates = true;

                        string xml = allFieldPermissions.ToString();
                        if (allFieldPermissions.Count > 0 && Helper.IsValidXml(xml))
                        {
                            Helper.CreateConfigFile(list, Constants.ConfigFile.FieldPermissionFile, xml);
                        }
                        else
                        {
                            Helper.DeleteConfigFile(list, Constants.ConfigFile.FieldPermissionFile, xml);
                        }

                        objWeb.AllowUnsafeUpdates = false;
                    }
                }
            });
        }
        protected void createTabXML()
        {
            FieldPermissions allFieldPermissions = new FieldPermissions();

            DataTable permissionDataTable = TabPermissionDataTable;
            DataTable permissionConditionDataTable = PermissionConditionDataTable;

            foreach (DataRow drPermission in permissionDataTable.Rows)
            {
                string OnField=drPermission[Constants.PermissionField.SPFieldName].ToString();
                bool IsDefault = Helper.ConvertToBool(drPermission[Constants.PermissionField.IsDefault].ToString());
                Enums.PermissionLevel permissionLevel = (Enums.PermissionLevel)(Convert.ToInt32(drPermission[Constants.PermissionField.PermissionID].ToString()));
                string OnForms = drPermission[Constants.PermissionField.OnFormIDs].ToString();
                string ForSPPrinciples = drPermission[Constants.PermissionField.SPPrinciples].ToString();
                Enums.Operator BySPPrinciplesOperator = (Enums.Operator)(Convert.ToInt32(drPermission[Constants.PermissionField.SPPrinciplesOperatorID].ToString()));
                int permissionID = Convert.ToInt32(drPermission[Constants.RowID]);

                FieldPermission perm1 = new FieldPermission(new Field(OnField), permissionLevel, FieldPermission.ParseForms(OnForms), ForSPPrinciples, BySPPrinciplesOperator);


                DataTable conditionOfSelectedPermission = Helper.GetViewFromDataTable(permissionConditionDataTable, permissionID, Constants.ConditionField.PermissionRowID).ToTable();

                if (conditionOfSelectedPermission != null && conditionOfSelectedPermission.Rows.Count > 0)
                {
                    foreach (DataRow drCondition in conditionOfSelectedPermission.Rows)
                    {
                        string OnField2 = drCondition[Constants.ConditionField.SPFieldName].ToString();
                        Enums.Operator ByFieldOperator = (Enums.Operator)Convert.ToInt32(drCondition[Constants.ConditionField.SPFieldOperatorID].ToString());
                        object Value = drCondition[Constants.ConditionField.Value].ToString();

                        perm1.Conditions.Add(new Condition(new Field(OnField2), ByFieldOperator, Value));
                    }

                }

                allFieldPermissions.Add(perm1);
            }


            SPSecurity.RunWithElevatedPrivileges(delegate
            {
                using (SPSite objSite = new SPSite(SPContext.Current.Web.Url.ToString()))
                {
                    using (SPWeb objWeb = objSite.OpenWeb())
                    {
                        SPList list = objWeb.Lists[new Guid(Request.QueryString["List"])];

                        objWeb.AllowUnsafeUpdates = true;

                        string xml = allFieldPermissions.ToString();
                        if (allFieldPermissions.Count > 0 && Helper.IsValidXml(xml))
                        {

                            Helper.CreateConfigFile(list, Constants.ConfigFile.FieldPermissionFile, xml);
                        }
                        else
                        {
                            Helper.DeleteConfigFile(list, Constants.ConfigFile.FieldPermissionFile, xml);
                        }

                        objWeb.AllowUnsafeUpdates = false;
                    }
                }
            });
            
        }