Skip to main content
Open

Test default user groups and roles from the SF

Related products:Software Factory
  • December 27, 2022
  • 4 replies
  • 188 views
K.Bakkenes
Geurt
+24
  • K.Bakkenes
    K.Bakkenes
  • Edwin Saan
  • Willem Verhoef
  • Geurt
    Geurt
  • Mark van Benthem
  • Joost van Lier
    Joost van Lier
  • Ron Straver
    Ron Straver
  • SebastiaanBegeman
  • Ruben
    Ruben
  • Freddy
    Freddy
  • Frank Junger
  • ericbosman
  • Gaby Ewald
    Gaby Ewald
  • eddy
  • Yoshi
    Yoshi
  • Rafal Zaluski
    Rafal Zaluski
  • mperrott
    mperrott
  • Jefferson Delacruz
  • Jason Philip A Mortera
  • Kasper Reijnders
    Kasper Reijnders
  • Robin ten Hoven
  • Marc Meijerink
  • Carola Wagensveld
  • rbiram
    rbiram
  • BramG
  • Wanru Chi
  • Vincent van den Broek
  • juiterwijk
  • SdeWit

Testing default user groups with role assignments always requires synchronization with IAM after a change. Testing default user groups therefore becomes a time-consuming activity for our developpers.

 

We would like to have an option for the developer to test default user groups from within the SF without synchronization to IAM.

For example, if the developer could select a set of default user groups within the SF and use them to carry out the tests via IAM, this would save a lot of time.

 

Perhaps, the possibility to synchronize only the changes made in default user groups and role assignments to IAM separately from other model changes could be an alternative that saves time.

 

Did this topic help you find an answer to your question?

4 replies

Kasper Reijnders
Forum|alt.badge.img+5

Yes please 😃

Since it is possible to pre-define usergroups from the SF, this would be very helpful in testing the actual allowed capabilities of the group members. 


Mark Jongeling
Administrator
Forum|alt.badge.img+23
New→Under review

Anne Buit
Community Manager
Forum|alt.badge.img+5
  • Community Manager
  • 653 replies
  • June 7, 2023

We definitely see the value in being able to simulate a combination of roles from the Software Factory. Technically, this is quite challenging, however.

When the model is synchronized from the Software Factory to the Intelligent Application Manager, the model is not simply copied 1-to-1.

The model in the Software Factory is optimized for development. Information is not duplicated and conflicting information is automatically resolved using priority hierarchies. For instance, when you turn off the editability of a table, you won't get an error that one of the columns is still editable or that a role allows editing of this table. Turning it off will simply ‘overrule’ the column- and role setting in practice.

While this makes life easier for developers, this behavior also requires a bit of calculation. For instance, to determine whether or not you can view and edit a variant column when starting the application via the Software Factory, the Software Factory needs to perform (something like) the following calculations:

  • Load the variant grid access types, if present. Else load the base grid access types.
  • Check the editability of the base table (the variant may not exceed this)
  • Check the editability of the variant (the grid column may not exceed this)
  • Check the base column access type (the variant column may not exceed this)
  • Check the variant column access type (the grid column may not exceed this)
  • Apply the simulated role table rights, taking into account any limitations above.
  • Apply the simulated role column rights, taking into account any limitations above.
  • Check to see if there is an all-rights exception and apply if needed.
  • Check to see, when this column is a look-up, if the look-up is granted in the role
  • Check to see, when this column is hidden, if this column should be unauthorized when it is not in use as:
    • A primary key
    • A conditional layout condition
    • The default sorting
    • A process flow sort- or filter input, given that the process flow is authorized in the same role
    • Display field for breadcrumb, maps, tree, scheduler and such
    • Mapped to scheduler start/end date or maps coordinates
    • Used in a cube field
    • etc.

This is quite calculation-intensive and would not fly in a production environment. So, when synchronizing to IAM a lot of pre-calculations and duplications of information are applied:

  • All-rights are turned into actual role rights records.
  • Ensure the table variant settings are never exceeding the base table settings
  • Ensure the grid variant settings are pre-calculated and are not exceeding the base table settings nor the base column settings.
  • Store the actual access type with the role rights, which are calculated per variant, taking into account the base table settings, the role settings and the variant settings
  • Perform the unauthorized checks and store them with the role rights
  • etc.

This ensures that, when starting from IAM, loading the model for a variant grid column can be done really fast. It only consists of the following kinds of checks:

  • Load the variant settings for the grid 
  • Determine the set of roles
  • Apply the most lenient variant access types for all granted roles

Furthermore, this is then cached by IAM in a way that the runtime components can reuse these calculations for other users with the same set of roles.

 

This very different nature of data structures in IAM and the Software Factory makes it difficult to deliver on an idea like this one without resulting in unacceptable performance issues or a very restrictive and unintuitive development experience.

We will look into this further - perhaps a redesign of the data structures for roles or calculation and normalization during generation for role-combination simulation may offer some solutions.


Anne Buit
Community Manager
Forum|alt.badge.img+5
  • Community Manager
  • 653 replies
  • July 19, 2023
Under review→Open

Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings