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; } } }); }