Outsystems Group - extra logic

Hi,

I would like to use the outsystem Users-groups to give a group of users access to read or write data. To manage these groups should be possible during lifetime in my GUI and not only during development. 

With the Server-Actions "Group_CreateNew" and "Group_Update" (from the Users Application) I can manage the Groups. But I need the extra attribute "is_active" for the group entity.

I found this example to add extra attributs to the users entity:

https://success.outsystems.com/Documentation/How-to_Guides/Logic/How_to_add_extra_logic_to_Users'_login 

Can I extend the goup entity on the same way? And do I have to set the attrirube "HasCustomManagement" to "true" to extend the enttiy?

Hi Thorsten,


What do you mean, during lifetime and not only during development ?  Do you mean that you don't have the information yet at development time to be able to define the proper user roles ??  So you would like to allow some administrator to define new groups at any point to control access, and define at that time what users in these groups are allowed to do?  But how is your logic then going to make use of these groups to know what actions are allowed for members these on-the-fly groups ?  Will you model that in your extended group entity ?

There's no reason why you couldn't extend the group entity, I think.  You're not affecting the groups themselves by adding a reference in another entity.


Dorine

Let's say I have different products of the type "cars" then I would like to have a group "cars_readonly" and "cars_readwrite" with a set of users. In my application I can check if the user has access to read or write all products of the type "cars". 

After a while there will be another type of products "bicycles". But this type will created in the life GUI and not during a deployment. Therefore I need new groups "bicycles_readonly" and "bicycles_readwrite" without a deployment. 

I understand that I can extend the group entity to have the attribube "is_active" to activate or deactivate a specific group.

But do I have to set the attribue "HasCustomManagement" to "true" in that case?

Ok,

yes, I understand that you want to be able to create a bicycles_readwrite group, for example at some point with the UI without any development effort.  

But then I think you will need to do more than just have an IsActive attribute.  Let's say you have some server actions to update products, you will probably have logic in there to check if current user is allowed to update a product, given it's type.  So in your datamodel, you will also need to model the relationship between these product types and the custom groups you are creating.  That's what I'm missing in your post.

As for the HasCustomManagement, see this , it sounds to me that the only thing this does, is when set to true, that group will no longer be visible through the user application, so I think that is a good idea for the groups you create programatically.


Dorine