public FieldPermissionForm(UserRole obj)
            : base(obj, true)
        {
            this.mUserRole        = obj;
            this.mUserPermissions = new FieldPermissions(obj);

            this.InitializeComponent();
            this.UserInitialize();
        }
Example #2
0
        /// <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));
        }
Example #3
0
        /// <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));
        }
Example #5
0
        /// <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));
        }
Example #7
0
        /// <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));
        }
Example #8
0
        /// <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));
        }
Example #9
0
        /// <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));
        }
Example #10
0
 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);
            }
        }
Example #12
0
        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;
        }
Example #13
0
        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);
            }
        }
		protected IStorageFieldPermissions CreateEmptyFieldPermissionsObject(FieldPermissions permissions)
		{
			var storageService = service.StorageService;
			return storageService.GetObjectFactory().CreateEmptyFieldPermissionsObject();
		}
Example #15
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;
                    }
                }
            });
        }
Example #16
0
        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;
                    }
                }
            });
            
        }
Example #18
0
        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);
        }