4 Replies Latest reply: Jul 31, 2013 12:41 AM by Terry Huang RSS

    Can users be restricted to edit Custom Section?

    Terry Huang

      Dear Sir/Madam,

      At Section Level Editing, can we restrict users to edit the Custom Section?

      e.g.  A can edit Custom Section 1, but B can't edit Custom Section 1.

              B can edit Custom Section 2, but A can't.

      If so, how can we achieve this function?

       

      Thank you.

       

      Terry

        • 1. Re: Can users be restricted to edit Custom Section?
          KellyMayfield-Oracle

          You can definitely do this, This functionality was introduced in 6.1.0.  More information can be found in the extensibility pack, check out the extensibility guide Section Level Editing chapter.    

           

          Here are the Section Level IDs you need to use:

          GSM.SPECTYPE.CustomSections

          Controls all custom sections on the specification.

           

          GSM.SPECTYPE.CustomSections.ID

          Controls a specific custom section based on that custom section’s ID.  The ID is defined in ADMN.

          Example: GSM.MaterialSpec.CustomSections.15

           

          GSM.SPECTYPE.CustomSections.CustomSectionAddRemoveButtons

          Controls the Custom Section Add and Remove buttons.

          • 2. Re: Can users be restricted to edit Custom Section?
            Terry Huang

            Hi Kelly,

             

            Thank you for your reply.

            when I use SLE to implement this solution. I meet a error below, could you help me check what 's the problem?

            and SLESecurityExtension.config:(and I don't understard the meaning of ReferenceSLEExtensions$2 in config file?)

            <SLESecurityExtension>
              <SLEHandlers>
               <SLEHandler name="DefaultHandler" factory="Class:Xeno.Prodika.GSMLib.Security.SLEExtension.Handlers.DefaultSLESecurityHandlerFactory,GSMLib"/>

                <SLEHandler name="LockByWorkflowTagUnlesssInGroup_RandD" factory=" Class:ReferenceSLExtensions.ReferenceSLEHandlers.LockByWorkflowTagUnlessInGroupSecurityHandlerFactory,
                            ReferenceSLEExtensions$2,1005|2055c295cf05-4998-4825-b5f6-315437fd82d5"/>
            </SLEHandlers>

            <Inclusions>
              <Inclusion section="GSM.MaterialSpec.*" handlerRef="DefaultHandler"/>
                <Inclusion section="GSM.FormulationSpec.SupportingDocuments" handlerRef="LockByWorkflowTagUnlesssInGroup_RandD"/>
                <Inclusion section="GSM.FormulationSpec.DrlDocuments" handlerRef="LockByWorkflowTagUnlesssInGroup_RandD"/>
              <Inclusion section="GSM.*" handlerRef="DefaultHandler"/>


                </Inclusions>

            </SLESecurityExtension>

             

            The error message when I go to modify the support documents of formulation:

            [ObjectLoaderException: Protocol handler ' Class' can not be found (or loaded). Check the ProdikaCommon event log for any details.]  Xeno.Prodika.Common.ObjectLoader.GetProtocolHandler(String protocolName, Boolean bThrowOnError) +292  Xeno.Prodika.Common.ObjectLoader.createObject(String name) +102  Xeno.Prodika.SLE.Service.SLESecurityService.IsSectionLevelPermissionApproved(ISectionContext sectionLevelContext, String sectionId) +525  Xeno.Prodika.Services.Specification.SpecificationService.IsSectionInEditMode(String sectionId, Boolean checkEditMode) +264  Xeno.Prodika.Services.Specification.SpecificationService.IsSectionInEditMode(String sectionId) +12  prodika.XManagedObjectBaseControl.get_mode() +170  prodika.ctlSupportingDocument.InitializeControlsForMode() +37  prodika.XManagedObjectBaseControl.OnPreRender(EventArgs e) +28  System.Web.UI.Control.PreRenderRecursiveInternal() +108  System.Web.UI.Control.PreRenderRecursiveInternal() +224  System.Web.UI.Control.PreRenderRecursiveInternal() +224  System.Web.UI.Control.PreRenderRecursiveInternal() +224  System.Web.UI.Control.PreRenderRecursiveInternal() +224  System.Web.UI.Control.PreRenderRecursiveInternal() +224  System.Web.UI.Control.PreRenderRecursiveInternal() +224  System.Web.UI.Control.PreRenderRecursiveInternal() +224  System.Web.UI.Control.PreRenderRecursiveInternal() +224  System.Web.UI.Control.PreRenderRecursiveInternal() +224  System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +11041352  System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +11041050  System.Web.UI.Page.ProcessRequest() +91  System.Web.UI.Page.ProcessRequest(HttpContext context) +240  ASP.baseforms_frmformulation_aspx.ProcessRequest(HttpContext context) +9  System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +599  System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +171  

             

            Best Regards

            Terry

            • 3. Re: Can users be restricted to edit Custom Section?
              Ivy Zhu

              Please modify "

              <SLEHandler name="LockByWorkflowTagUnlesssInGroup_RandD" factory=" Class:ReferenceSLExtensions.ReferenceSLEHandlers.LockByWorkflowTagUnlessInGroupSecurityHandlerFactory,

                              ReferenceSLEExtensions$2,1005|2055c295cf05-4998-4825-b5f6-315437fd82d5"/>" with "<SLEHandler name="LockByWorkflowTagUnlesssInGroup_RandD" factory="Class:ReferenceSLEExtensions.ReferenceSLEHandlers.LockByWorkflowTagUnlessInGroupSecurityHandlerFactory,ReferenceSLEExtensions$2,1005|2055c295cf05-4998-4825-b5f6-315437fd82d5"/>". It should work.

              • 4. Re: Can users be restricted to edit Custom Section?
                Terry Huang

                It works, Thank you .