public FieldPermissionForm(UserRole obj) : base(obj, true) { this.mUserRole = obj; this.mUserPermissions = new FieldPermissions(obj); this.InitializeComponent(); this.UserInitialize(); }
/// <summary> /// Retruns the Report Field parameters of the Career History table Notes field /// </summary> /// <returns>Tuple<string, string, string, FieldOptions, FieldPermissions></returns> private static Tuple <string, string, string, FieldOptions, FieldPermissions> Notes() { string desc = ""; /* fparams = sqlTableName: sqlFieldName: fieldName: displayName: description: fieldType:dataModelType: primitiveType:extractionType: LastModifiedUser */ string fparams = $"careerhistory:notes:Notes:Notes:{desc}:EmployeeSubrecord:CareerHistory:String:Direct:Init"; FieldOptions foptions = new FieldOptions() { CustomFormatString = "", DisplayMode = DataDisplayModeEnum.Memo, DecimalPlaces = 0, MaxColumnLength = 100, DisplayNamePlaceHolder = "" }; var fpermissions = new FieldPermissions(); return(Tuple.Create(fparams, "", "", foptions, fpermissions)); }
/// <summary> /// Returns the Report Field parameters of the PersonContact table DateOfBirth field /// </summary> /// <returns></returns> private static Tuple <string, string, string, FieldOptions, FieldPermissions> DateOfBirth() { string desc = ""; /* fparams = sqlTableName: sqlFieldName: fieldName: displayName: description: fieldType:dataModelType: primitiveType:extractionType: LastModifiedUser */ string fparams = $"personcontact:dateofbirth:DateOfBirth:DOB:{desc}:EmployeeSubrecord:PersonContact:NullableDateTime:Direct:Init"; FieldOptions foptions = new FieldOptions() { CustomFormatString = "", DisplayMode = DataDisplayModeEnum.dd_MMM_yyyy, DecimalPlaces = 0, MaxColumnLength = 12, DisplayNamePlaceHolder = "" }; var fpermissions = new FieldPermissions(); return(Tuple.Create(fparams, "", "", foptions, fpermissions)); }
/// <summary> /// Returns the Report Field parameters of the ExitInterview table ReEmployBy field /// </summary> /// <returns> Tuple<string, string, string, FieldOptions, FieldPermissions> </returns> private static Tuple <string, string, string, FieldOptions, FieldPermissions> ReEmployBy() { string desc = "The name of the person the Exit interview was conducted by"; /* fparams = sqlTableName: sqlFieldName: fieldName: displayName: description: fieldType:dataModelType: primitiveType:extractionType: LastModifiedUser */ string fparams = $"exitinterview:reemployby:ReEmployBy:ReEmploy By:{desc}:EmployeeSubrecord:ExitInterview:String:Direct:Init"; FieldOptions foptions = new FieldOptions() { CustomFormatString = "", DisplayMode = DataDisplayModeEnum.Text, DecimalPlaces = 0, MaxColumnLength = 25, DisplayNamePlaceHolder = "" }; var fpermissions = new FieldPermissions(); return(Tuple.Create(fparams, "", "", foptions, fpermissions)); }
/// <summary> /// Returns the Report Field parameters of the Payment table EffectiveFrom field /// </summary> /// <returns> Tuple<string, string, string, FieldOptions, FieldPermissions> </returns> private static Tuple <string, string, string, FieldOptions, FieldPermissions> EffectiveFrom() { string desc = "Payment Start Date"; /* fparams = sqlTableName: sqlFieldName: fieldName: displayName: description: fieldType:dataModelType: primitiveType:extractionType: LastModifiedUser */ string fparams = $"payment:effectivefrom:EffectiveFrom:Payment Start Date:{desc}:EmployeeSubrecord:Payment:NullableDateTime:Direct:Init"; FieldOptions foptions = new FieldOptions() { CustomFormatString = "", DisplayMode = DataDisplayModeEnum.dd_MMM_yyyy, DecimalPlaces = 0, MaxColumnLength = 25, DisplayNamePlaceHolder = "" }; var fpermissions = new FieldPermissions(); return(Tuple.Create(fparams, "", "", foptions, fpermissions)); }
/// <summary> /// Returns the Report Field parameters of the ExitInterview table InterviewDate field /// </summary> /// <returns> Tuple<string, string, string, FieldOptions, FieldPermissions> </returns> private static Tuple <string, string, string, FieldOptions, FieldPermissions> InterviewDate() { string desc = "The day the Exit interview was conducted"; /* fparams = sqlTableName: sqlFieldName: fieldName: displayName: description: fieldType:dataModelType: primitiveType:extractionType: LastModifiedUser */ string fparams = $"exitinterview:interviewdate:InterviewDate:Interview Date:{desc}:EmployeeSubrecord:ExitInterview:NullableDateTime:Direct:Init"; FieldOptions foptions = new FieldOptions() { CustomFormatString = "", DisplayMode = DataDisplayModeEnum.dd_MMM_yyyy, DecimalPlaces = 0, MaxColumnLength = 12, DisplayNamePlaceHolder = "" }; var fpermissions = new FieldPermissions(); return(Tuple.Create(fparams, "", "", foptions, fpermissions)); }
/// <summary> /// Returns the Report Field parameters of the PersonContact table WorkPhone field /// </summary> /// <returns></returns> private static Tuple <string, string, string, FieldOptions, FieldPermissions> WorkPhone() { string desc = ""; /* fparams = sqlTableName: sqlFieldName: fieldName: displayName: description: fieldType:dataModelType: primitiveType:extractionType: LastModifiedUser */ string fparams = $"personcontact:workphone:WorkPhone:Work Phone:{desc}:EmployeeSubrecord:PersonContact:String:Direct:Init"; FieldOptions foptions = new FieldOptions() { CustomFormatString = "", DisplayMode = DataDisplayModeEnum.Text, DecimalPlaces = 0, MaxColumnLength = 25, DisplayNamePlaceHolder = "" }; var fpermissions = new FieldPermissions(); return(Tuple.Create(fparams, "", "", foptions, fpermissions)); }
/// <summary> /// Returns the Report Field parameters of the Payment table FullTimeSalary field /// </summary> /// <returns> Tuple<string, string, string, FieldOptions, FieldPermissions> </returns> private static Tuple <string, string, string, FieldOptions, FieldPermissions> FullTimeSalary() { string desc = ""; /* fparams = sqlTableName: sqlFieldName: fieldName: displayName: description: fieldType:dataModelType: primitiveType:extractionType: LastModifiedUser */ string fparams = $"payment:fulltimesalary:FullTimeSalary:Full Time Salary:{desc}:EmployeeSubrecord:Payment:NullableDecimal:Direct:Init"; FieldOptions foptions = new FieldOptions() { CustomFormatString = "", DisplayMode = DataDisplayModeEnum.DecimalPlaces, DecimalPlaces = 2, MaxColumnLength = 15, DisplayNamePlaceHolder = "" }; var fpermissions = new FieldPermissions(); return(Tuple.Create(fparams, "", "", foptions, fpermissions)); }
/// <summary> /// Create the Report Field parameters of the Absence table IsNextYearLeave field /// </summary> /// <returns></returns> private static Tuple <string, string, string, FieldOptions, FieldPermissions> IsNextYearLeave() { string desc = ""; /* fparams = sqlTableName: sqlFieldName: fieldName: displayName: description: fieldType:dataModelType: primitiveType:extractionType: LastModifiedUser */ string fparams = $"absence:isnextyearleave:IsNextYearLeave:Next Years Hol?:{desc}:EmployeeSubrecord:Absence:String:Direct:Init"; FieldOptions foptions = new FieldOptions() { CustomFormatString = "", DisplayMode = DataDisplayModeEnum.ToYesNo, DecimalPlaces = 0, MaxColumnLength = 3, DisplayNamePlaceHolder = "" }; var fpermissions = new FieldPermissions(); return(Tuple.Create(fparams, "", "", foptions, fpermissions)); }
public static FieldPermissionsDTO MapToDTO(FieldPermissions domain) { return(new FieldPermissionsDTO()); }
protected override void OnInit(EventArgs e) { try { if (SPContext.Current.SiteFeatures[new Guid(Constants.ASPLFeature.FeatureID)] == null) { base.OnInit(e); return; } RendringUtil.RenderResources(this.Page.Header); allTabs = Tabs.LoadTabs(GetConfigFile(Constants.ConfigFile.TabSettingFile)); allFieldPermissions = FieldPermissions.LoadFieldPermissions(GetConfigFile(Constants.ConfigFile.FieldPermissionFile)); allFieldDefaults = FieldDefaults.LoadFieldDefaults(GetConfigFile(Constants.ConfigFile.FieldDefaultFile)); #region Testing data //allTabs = new Tabs(); //Tab t1 = new Tab(0, "Tab1", "foo"); //t1.Fields.Add(new Field("Title")); //t1.Fields.Add(new Field("Predecessors")); //t1.Fields.Add(new Field("Priority")); //t1.Fields.Add(new Field("Status")); //t1.Permissions.Add(new TabPermission(false, Enums.PermissionLevel.Write, new List<Enums.SPForms>() { Enums.SPForms.New, Enums.SPForms.Edit }, "", Enums.Operator.None)); //t1.Permissions.Add(new TabPermission(false, Enums.PermissionLevel.Deny, new List<Enums.SPForms>() { Enums.SPForms.New, Enums.SPForms.Edit }, "", Enums.Operator.None)); //t1.IsFirst = true; //allTabs.Add(t1); //Tab t2 = new Tab(0, "Tab2", "foo"); //t2.Fields.Add(new Field("PercentComplete")); //t2.Fields.Add(new Field("DueDate")); //t2.Fields.Add(new Field("Title")); //t2.Fields.Add(new Field("Body")); //t2.IsSelected = true; //t2.Permissions.Add(new TabPermission(false, Enums.PermissionLevel.Deny, new List<Enums.SPForms>() { Enums.SPForms.New, Enums.SPForms.Edit }, "", Enums.Operator.None)); //TabPermission p3 = new TabPermission(false, Enums.PermissionLevel.Write, new List<Enums.SPForms>() { Enums.SPForms.New, Enums.SPForms.Edit }, "", Enums.Operator.None); //p3.Conditions.Add(new Condition(new Field("Title"), Enums.Operator.Contains, "Make write")); //t2.Permissions.Add(p3); //allTabs.Add(t2); //Tab t3 = new Tab(0, "Tab3", "foo"); //t3.Fields.Add(new Field("PercentComplete")); //t3.Fields.Add(new Field("DueDate")); //t3.Fields.Add(new Field("Predecessors")); //t3.IsLast = true; //allTabs.Add(t3); //allFieldPermissions = new FieldPermissions(); //allFieldPermissions.Add(new FieldPermission(new Field("Title"), Enums.PermissionLevel.Write, new List<Enums.SPForms>() { Enums.SPForms.New, Enums.SPForms.Edit }, "", Enums.Operator.None)); //allFieldPermissions.Add(new FieldPermission(new Field("Predecessors"), Enums.PermissionLevel.Read, new List<Enums.SPForms>() { Enums.SPForms.New, Enums.SPForms.Edit }, "", Enums.Operator.None)); //allFieldDefaults = new FieldDefaults(); //allFieldDefaults.Add(new FieldDefault(new Field("Title"), "", Enums.Operator.None, "", "You cant touch me!!")); //allTabs = null; #endregion this.updatePanelIterator = new UpdatePanel(); this.updatePanelIterator.ID = "updatePanelIterator"; this.updatePanelIterator.RenderMode = UpdatePanelRenderMode.Inline; if (this.RequestResultTabsInfoHidden == null) { this.RequestResultTabsInfoHidden = new HiddenField(); } this.RequestResultTabsInfoHidden.ID = "RequestResultTabsInfoHidden"; this.RequestResultTabsInfoHidden.Value = (allTabs == null ? "null" : allTabs.ToHiddenFldValue()); this.updatePanelIterator.ContentTemplateContainer.Controls.Add(this.RequestResultTabsInfoHidden); Panel panel = new Panel(); panel.Style.Add(HtmlTextWriterStyle.Position, "absolute"); panel.Style.Add(HtmlTextWriterStyle.Width, "100%"); this.Controls.Add(panel); panel.Controls.Add(this.updatePanelIterator); panel.Controls.Add(UpdateTemplate.GetUpdateProgress(this.updatePanelIterator.ID)); CreateHelperControls(); base.OnInit(e); // register save handler if not in display mode and form is posted back if ((Page.IsPostBack) && (ControlMode != SPControlMode.Display)) { _formContext.OnSaveHandler += new EventHandler(SaveHandler); } } catch (Exception exp) { base.OnInit(e); Logging.Log(exp); } }
public static SPControlMode Handle(string spInternalName, SPControlMode formMode, Tabs tabs, FieldPermissions fPerms, SPPrincipal princ, out bool isHidden) { SPControlMode result = SPControlMode.Invalid; isHidden = false; if (tabs != null) { foreach (Tab tab in tabs) { foreach (TabPermission tp in tab.Permissions) { if (ConditionEvaluator.EvaluateFromListItem(tp.Conditions) && PrincipalEvaluator.Check(tp.ForSPPrinciples, tp.BySPPrinciplesOperator)) { if (tab.Fields.Any<Field> (f => f.SPName.Equals(spInternalName, StringComparison.InvariantCultureIgnoreCase))) { if (tp.OnForms.Contains(Enums.SPForms.New) && formMode == SPControlMode.New || tp.OnForms.Contains(Enums.SPForms.View) && formMode == SPControlMode.Display || tp.OnForms.Contains(Enums.SPForms.Edit) && formMode == SPControlMode.Edit) { switch (tp.Level) { case Enums.PermissionLevel.Read: result = SPControlMode.Display; isHidden = false; break; case Enums.PermissionLevel.Write: if (formMode == SPControlMode.Edit) result = SPControlMode.Edit; else result = SPControlMode.New; isHidden = false; break; case Enums.PermissionLevel.Deny: isHidden = true; result = SPControlMode.Invalid; break; } } } } } } } //FieldPermissionCheck: if (fPerms != null) { foreach (FieldPermission fp in fPerms) { if (ConditionEvaluator.EvaluateFromListItem(fp.Conditions) && PrincipalEvaluator.Check(fp.ForSPPrinciples, fp.BySPPrinciplesOperator)) { if (fp.OnField.SPName.Equals(spInternalName, StringComparison.InvariantCultureIgnoreCase)) { if (fp.OnForms.Contains(Enums.SPForms.New) && formMode == SPControlMode.New || fp.OnForms.Contains(Enums.SPForms.View) && formMode == SPControlMode.Display || fp.OnForms.Contains(Enums.SPForms.Edit) && formMode == SPControlMode.Edit) { switch (fp.Level) { case Enums.PermissionLevel.Read: result = SPControlMode.Display; isHidden = false; goto FinishPermissionCheck; case Enums.PermissionLevel.Write: if (formMode == SPControlMode.Edit) result = SPControlMode.Edit; else result = SPControlMode.New; isHidden = false; goto FinishPermissionCheck; case Enums.PermissionLevel.Deny: isHidden = true; result = SPControlMode.Invalid; break; } } } } } } FinishPermissionCheck: return result; }
protected IStorageFieldPermissions CreateEmptyFieldPermissionsObject(FieldPermissions permissions) { var storageService = service.StorageService; return storageService.GetObjectFactory().CreateEmptyFieldPermissionsObject(); }
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 LoadFieldSettings() { SPSecurity.RunWithElevatedPrivileges(delegate { using (SPSite objSite = new SPSite(SPContext.Current.Web.Url)) { using (SPWeb objWeb = objSite.OpenWeb()) { SPList list = objWeb.Lists[new Guid(Request.QueryString["List"])]; FieldPermissions allFieldPermissions = FieldPermissions.LoadFieldPermissions(Helper.GetConfigFile(list, Constants.ConfigFile.FieldPermissionFile)); if (allFieldPermissions != null) { DataTable permissionDataTable = createPermissionDataTable(); DataTable permissionConditionDataTable = createConditionDataTable(); foreach (FieldPermission fp in allFieldPermissions) { if (!list.Fields.ContainsField(fp.OnField.SPName)) { continue; } DataRow drPermission = permissionDataTable.NewRow(); // Adding the tab row id for reference drPermission[Constants.PermissionField.SPFieldName] = fp.OnField.SPName; drPermission[Constants.PermissionField.SPFieldDisplayName] = list.Fields.GetFieldByInternalName(fp.OnField.SPName).Title; drPermission[Constants.PermissionField.PermissionID] = (int)fp.Level; drPermission[Constants.PermissionField.PermissionName] = Enums.DisplayString(fp.Level); drPermission[Constants.PermissionField.SPPrinciples] = fp.ForSPPrinciples; drPermission[Constants.PermissionField.SPPrinciplesOperatorID] = (int)fp.BySPPrinciplesOperator; drPermission[Constants.PermissionField.SPPrinciplesOperatorName] = Enums.DisplayString(fp.BySPPrinciplesOperator); drPermission[Constants.PermissionField.OnFormIDs] = fp.FormsIdToString(); drPermission[Constants.PermissionField.OnFormNames] = fp.FormsToString(); drPermission[Constants.PermissionField.HasCondition] = fp.Conditions.ConditionsToString(list); permissionDataTable.Rows.Add(drPermission); foreach (Condition permCondition in fp.Conditions) { if (!list.Fields.ContainsField(permCondition.OnField.SPName)) { continue; } DataRow drCondition = permissionConditionDataTable.NewRow(); drCondition[Constants.ConditionField.PermissionRowID] = drPermission[Constants.RowID]; drCondition[Constants.ConditionField.SPFieldName] = permCondition.OnField.SPName; drCondition[Constants.ConditionField.SPFieldDisplayName] = list.Fields.GetFieldByInternalName(permCondition.OnField.SPName).Title; drCondition[Constants.ConditionField.SPFieldOperatorID] = (int)permCondition.ByFieldOperator; drCondition[Constants.ConditionField.SPFieldOperatorName] = Enums.DisplayString(permCondition.ByFieldOperator); drCondition[Constants.ConditionField.Value] = permCondition.Value; permissionConditionDataTable.Rows.Add(drCondition); } PermissionConditionDataTable = permissionConditionDataTable; } TabPermissionDataTable = permissionDataTable; gvPermission.DataSource = permissionDataTable; gvPermission.DataBind(); } } } }); }
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 IStorageFieldPermissions CreateEmptyFieldPermissionsObject(FieldPermissions permissions) { var storageService = service.StorageService; return(storageService.GetObjectFactory().CreateEmptyFieldPermissionsObject()); }
public static SPControlMode Handle(string spInternalName, SPControlMode formMode, Tabs tabs, FieldPermissions fPerms, SPPrincipal princ, out bool isHidden) { SPControlMode result = SPControlMode.Invalid; isHidden = false; if (tabs != null) { foreach (Tab tab in tabs) { foreach (TabPermission tp in tab.Permissions) { if (ConditionEvaluator.EvaluateFromListItem(tp.Conditions) && PrincipalEvaluator.Check(tp.ForSPPrinciples, tp.BySPPrinciplesOperator)) { if (tab.Fields.Any <Field> (f => f.SPName.Equals(spInternalName, StringComparison.InvariantCultureIgnoreCase))) { if (tp.OnForms.Contains(Enums.SPForms.New) && formMode == SPControlMode.New || tp.OnForms.Contains(Enums.SPForms.View) && formMode == SPControlMode.Display || tp.OnForms.Contains(Enums.SPForms.Edit) && formMode == SPControlMode.Edit) { switch (tp.Level) { case Enums.PermissionLevel.Read: result = SPControlMode.Display; isHidden = false; break; case Enums.PermissionLevel.Write: if (formMode == SPControlMode.Edit) { result = SPControlMode.Edit; } else { result = SPControlMode.New; } isHidden = false; break; case Enums.PermissionLevel.Deny: isHidden = true; result = SPControlMode.Invalid; break; } } } } } } } //FieldPermissionCheck: if (fPerms != null) { foreach (FieldPermission fp in fPerms) { if (ConditionEvaluator.EvaluateFromListItem(fp.Conditions) && PrincipalEvaluator.Check(fp.ForSPPrinciples, fp.BySPPrinciplesOperator)) { if (fp.OnField.SPName.Equals(spInternalName, StringComparison.InvariantCultureIgnoreCase)) { if (fp.OnForms.Contains(Enums.SPForms.New) && formMode == SPControlMode.New || fp.OnForms.Contains(Enums.SPForms.View) && formMode == SPControlMode.Display || fp.OnForms.Contains(Enums.SPForms.Edit) && formMode == SPControlMode.Edit) { switch (fp.Level) { case Enums.PermissionLevel.Read: result = SPControlMode.Display; isHidden = false; goto FinishPermissionCheck; case Enums.PermissionLevel.Write: if (formMode == SPControlMode.Edit) { result = SPControlMode.Edit; } else { result = SPControlMode.New; } isHidden = false; goto FinishPermissionCheck; case Enums.PermissionLevel.Deny: isHidden = true; result = SPControlMode.Invalid; break; } } } } } } FinishPermissionCheck: return(result); }