[midPoint] Filtering for ObjectForms

Radovan Semancik radovan.semancik at evolveum.com
Tue May 16 17:06:48 CEST 2017


Hi,

This is currently a limitation in midPoint. You cannot differentiate 
between users using adminGuiConfiguration. Authorizations are used to 
differentiate the users, but use of authorization to control the GUI 
behavior is very tricky. That is the reason that we have used 
adminGuiConfiguration instead.

Using object-level authorizations to automatically show or hide the tabs 
is the right solution. In that case the tabs will be shown or hidden 
according to the authorizations that the current user has over the 
object that he is looking at. This is the right way, but it is quite 
tricky and may be difficult to implement properly. So we thought about 
using GUI authorizations for that purpose. Each tab could have its own 
GUI authorization that might control whether to display it or not. But 
there is a problem: no authorizations means no access. Which is not 
really a problem if you add all the tab authorizations to a role. Which 
seems fine. But new tabs appear in almost any version of midPoint. And 
that would mean continually updating the authorizations after each 
upgrade to allow new tabs. And this approach is not really compatible 
with the "automatic" behavior of tabs that we would like to have later. 
What the GUI authorization would mean in that case? Always display the 
tab? Or display the tab only if object authorizations allow it? In that 
former case the automatic object authorizations would not really work 
with pre-existing setup and setup-up will need to be modified after this 
functionality is introduced. This means (at least one) problematic 
upgrade. In the later case when we add object authorizations we would 
still need to add new GUI authorization. Which means all upgrades will 
be slightly problematic. Neither method seems to be good. So, the 
decision was not shoot ourselves in the foot. We have decided to provide 
simpler mechanism based on adminGuiConfiguration, At least for now - 
until we could find the funding to correctly implement evaluation of 
object-level authorizations in the GUI tabs. And there may be even a 
justifiable need to this mechanism: sometimes we would like to hide a 
tab even if the user has an authorization for the operation. The reason 
may be that we want to keep the stock user detail pages simple for some 
users, while still allowing access to the operations e.g. by using 
completely custom GUI tabs.

So, obviously you most likely cannot do what you want to do now (neither 
midPoint 3.5.1 nor midPoint 3.6). There are two options that we could 
consider for midPoint 3.7:

1) Implement the full support for object-level authorizations in GUI. 
This is obviously the right solution. But it may be difficult.

2) Add more options for adminGuiConfiguration. So you could fine-tune 
what objects the configuration is applicable to. This would be easier. 
Yes, it will partially duplicate the existing functionality of 
authorizations. But that may not be a big problem and it fact it may be 
even desirable. E.g. to hide tabs even if user has the authorization.

One way or another, this means new development and therefore it will 
require some kind of funding.

(Sorry for late answer. I've missed this one.)

-- 
Radovan Semancik
Software Architect
evolveum.com



On 04/25/2017 07:48 AM, Aivo Kuhlberg wrote:
>
> In MP 3.5.1 I can limit forms visibility by objectForms 
> adminGuiConfiguration setting. Unfortunately this setting seems to 
> influence all objects of the same type. For example if I declare this 
> for end users:
>    <adminGuiConfiguration>
>       <objectForms>
>          <objectForm>
>             <type>c:UserType</type>
>             <formSpecification>
> <panelUri>http://midpoint.evolveum.com/xml/ns/public/gui/component-3#focusTabBasic</panelUri>
>             </formSpecification>
>          </objectForm>
>       </objectForms>
>    </adminGuiConfiguration>
>
> then users see only Basic tab for user information. But what about 
> situation when I want to see all tabs when I view my own data and 
> limit only tabs visibility when browsing other users data? Can I 
> implement this feature in current midPoint?
> Thanks,
> Aivo Kuhlberg
>
>
> ------------------------------------------------------------------------
> Käesolev e-kiri võib sisaldada asutusesiseseks kasutamiseks 
> tunnistatud teavet.
> This e-mail may contain information which is classified for official use.
>
>
> _______________________________________________
> midPoint mailing list
> midPoint at lists.evolveum.com
> http://lists.evolveum.com/mailman/listinfo/midpoint


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.evolveum.com/pipermail/midpoint/attachments/20170516/82cf84d3/attachment.htm>


More information about the midPoint mailing list