Hiding a manual action on an Record whilst retaining the privilege for automatic actions (for example hide the "add assignment" action)

Version 12

    Verified Product Versions

    LANDESK Service Desk 7.6LANDESK Service Desk 7.7.xLANDESK Service Desk 7.8.xLANDESK Service Desk 2016.xLANDESK Asset Central 2016.x

    If a role does not have the Add Assignment Privilege and the user in that role tries to create an Incident where the Incident will go through an automatic Add Assignment action, the user will receive the error:  "Error: Authorisation failure. User is not authorised to perform Create operations on the IncidentManagement.Assignment class type.".  The incident is then not saved.

     

    If a role does have the "Add Assignment" Privilege, any user in that Role will be allowed to action the "Add Assignment" Action on an Incident where the action is available.

     

    If you don't want the users to be allowed to manually action an Action within the Process, but you still want to allow them to action the Action automatically (as this is needed), it's a bit of a catch 22 scenario as both these are controlled by the same Privilege from the front end.

     

    There is however steps that can be taken to allow for both scenarios. Please see below steps.

    Exclusions

    The procedure and scripts shown in this article do not work for "Add Children ..." or "Add Parent ..." Actions.

    There is a way to hid these actions by using an intermittent process instead. See How to hide the "Add Parent ..." action when creating child records for details.

    This procedure only works for hiding optional actions on a status.  If you need to hide actions that are in the process then you will need to use a precondition before the action in the process that restricts it's access.

     

     

     

    To fix:

    1.  Fully test this on a test copy of your database and take a backup of your live database before you run it on there.

    2.  Edit the role's prvileges so they are allowed the "Execute" action within Modules -> Incident Management -> Process Related Objects -> Incident.

    3.  Run the attached script against your database.  Please read the script comments and adjust the role as required.  Note that the privielege being altered is specific for Incidents so for other modules and actions please read the next section.

    Aditional Information for using the script in other scenarios

    This same effect can be achieved with other actions in your process.  For example, you might want your end users to be able to create a change and submit it which might generate a reminder but you don't want to allow them to manually create a reminder.  The way in which to modify this script for other purposes is as follows:

     

    1.  Fully test this on a test copy of your database and take a backup of your live database before you run it on there.

    2.  In Business Object Designer,  locate the action that triggers an instance of the collection record.  For example, Change Management - Change - then locate the Reminders collection attribute on the Change object and click Manage Actions.  Make a note of this action name.  For example, "Add Reminder".

    3.  Edit the role's prvileges so they are allowed the "Execute" action within Modules for the action that you will be altering.  For example. Modules - Change Management - Process Related Objects - Change - Reminder - Add Reminder.

    4.  Run the following statement against your database:

    select md_title, md_name from md_privileged_item where md_name like '%NAME OF MODULE%' and md_title = 'Name of Action' 

     

    For example:

    select md_title, md_name from md_privileged_item where md_name like '%change%' and md_title = 'Add Reminder' 

     

    5.  This will then give you the md_name value that you require.  NOTE: You may also get a row returned for task as well as the module you require so be careful to select the right one.

    6.  Alter the attached script to replace 'IncidentManagement.Incident.Function.AddAssignment' with the md_name value that you got at step 5.

    7.  Run the attached script against your database.  Please read the script comments and adjust the role as required.

     

    Environment

    ITBM all versions.

     

    UPDATE:  Added an Oracle version of the script.