Selective access for lists from dashboards.

Occasional Contributor

Selective access for lists from dashboards.

I am trying to enable the user to give selective access on a list via dashboard. I published the list to the dashboard and can clearly see the "Read" and "Write" columns on the dashboards, however if I save the dashboard and close and reopen it , the columns of "Read" and "Write" are not visible. Can somebody explain what is the issue here? Is there any workarounds for the same as one can neither import into those columns nor can one apply formula to them. 

 

Any help would be appreciated.

3 REPLIES 3
Super Contributor

Re: Selective access for lists from dashboards.

Hi,

 

Can you please provide some screen shots and brief descriptions of the issue you're facing?

 

Thanks,

LipChean

Message 2 of 4
Highlighted
Community Boss

Re: Selective access for lists from dashboards.

@aakash ,

 

This going to be a long post (might be a record), but the short answer is you have to create an action to write into the User list.  When you do this, you have to specify the Read, Write, and if you are removing access, the None.  Say your list is L3 Projects, you will have to specify L3 Projects Read, L3 Projects Write, and L3 Projects None.  To do that, follow these instructions.

 

Lists Needed:

  • Fake Users - you will need this to dimensionalize the input
  • You can either use the L3 Capital Projects for input or what I did is use the Capital Projects Flat list.  Either way will work, but the flat list will be smaller (especially if L3 rolls up to L2 which rolls up to L1), but is a bit more complicated as you have to link to the L3 member.

So this example will be on the Projects Flat list.  Create a module named SYS Fake Users which is dimensionalized by Users.  Create 4 line items: In Fake Users List (formatted as Fake Users), Load? (formatted as boolean), Anaplan Calcs (formatted as No Data - this is used as a spacer), and User txt (formatted as Text).

 

Formulas: 

In Fake Users List: FINDITEM(Fake Users, User txt)

Load?: ISBLANK(In Fake Users LIst)

Anaplan Calcs: nothing

User Txt: NAME(ITEM(Users))

 

2019-05-15_21-23-47.png

Create an action with a filter on Load?

 

2019-05-15_21-25-40.png

 The results are everyone that that has access to the model, but are yet to be loaded into Fake Users.  Only show the line item Load? and User Txt.

 

2019-05-15_21-28-05.png

 

Rename the action to Build Fake Users

2019-05-15_21-28-42.png

 

Create a SYS Capital Projects Flat Properties module.  Since I am using a numbered list, I need to get the "internal" name of the Capital Project.  Create the following line items:

  • Code of Capital Projects (text): CODE(ITEM(Capital Projects Flat))
  • L3 Link (L3 Capital Projects): FINDITEM('L3 Capital Projects', Code of Capital Projects)
  • Name of L3: (text): NAME('L3 Link')
  • L2 Link (formatted as L2): PARENT('L3 Link')
  • L2 Link (formatted as L1):PARENT('L2 Link')

2019-05-15_21-43-00.png

 

 

Create a module dimensionalized by Capital Projects Flat and Fake Users.  You have to user Fake Users because you will not have access to everyone.  Create the following line items with the associated formulas:

  • User: (boolean) - IF Write OR Read OR ISNOTBLANK('L3 Capital Projects None') THEN ITEM(Fake Users) ELSE BLANK
  • Write: (boolean) - 
  • Read (boolean):
  • Anaplan Calcs: (formatted as None) -
  • L3 Capital Projects Write (formatted as Text): IF Write THEN SYS Capital Projects Flat Properties.'Name of L3' ELSE BLANK
  • L3 Capital Projects Read (formatted as Text): IF Write AND Read THEN BLANK ELSE IF Read THEN SYS Capital Projects Flat Properties.'Name of L3' ELSE BLANK
  • L3 Capital Projects Non (formatted as Text): IF NOT Write AND Previous Write OR NOT Read AND Previous Read THEN SYS Capital Projects Flat Properties.'Name of L3' ELSE BLANK
  • Load? (formatted as boolean): Write <> Previous Write OR Read <> Previous Read AND ISNOTBLANK(User) OR ISNOTBLANK('L3 Capital Projects None')
  • Clear Area: formatted as None
  • Previous Write (formatted as boolean):
  • Previous Read (formatted as boolean):

2019-05-15_21-35-50.png

 

Create a view: Load to Users

Change the pivot where you have Capital Projects and Fake Users on the Rows, showing the following line items: User, L3 Capital Projects Read, L3 Capital Projects Write, L3 Capital Projects None, and Load?

2019-05-15_21-47-16.png

Filter is defined as:

2019-05-15_21-45-21.png

 

 Create another view: Previous Read Write Selections

Line items to show: Read and Write

2019-05-15_21-49-29.png

 

Filter is defined as:

2019-05-15_21-50-50.png

 Create a third view, called User Access db which will be published to the dashboard.

 

2019-05-15_21-52-05.png

 

Go to the Users area and click Import.

Select the view User Access - Capital Projects.Load to Users.  Fill in the blanks with the appropriate fields.

2019-05-15_21-55-57.png

 

2019-05-15_21-56-06.png

 

Click OK.

Rename the action to: Build Read Write Security

2019-05-15_21-57-34.png

Create another action which will write the current Write and Read selections to the Previous Write and Previous Read line items.  This will be based on the view User Access - Capital Projects.Previous Read Write Selections.

 

2019-05-15_22-00-52.png

 

2019-05-15_22-01-04.png

 

2019-05-15_22-01-12.png

 

2019-05-15_22-01-23.png

 Rename the actions to:

  • Build Read Write Security
  • Build Read Write Security

 

Create a new Process is named Update Security with the following actions:

2019-05-15_22-05-00.png

 

2019-05-15_22-05-21.png

 

Publish this to a new dashboard as well as the view you created earlier (User Access db).  I also created a "Refresh Projects" button that refreshes the Capital Projects based on the selection, but that will be a different post.

 

2019-05-15_22-06-39.png

 

 Hope this helps,

 

Rob

 

 

Message 3 of 4
Occasional Contributor

Re: Selective access for lists from dashboards.

@rob_marshall 

 

Thank you so much for providing such a detailed solution. It worked for me. Earlier I had been trying to import into the column "<listname> Write" using textlist but it occurred to me that a comma separated list of list items won't be imported into that columns. 

I tried your approach and it successfully worked.

 

Message 4 of 4