stroom icon indicating copy to clipboard operation
stroom copied to clipboard

Ability to list permissions for a User or set of Users

Open stroomdev10 opened this issue 3 years ago • 2 comments

I'd like to be able to generate a list of assigned permissions for a given user or set of users.

Additionally, it would be good if the effective/inherited permissions could be generated, although this is not immediately required.

Currently the first part of this requirement is performed using an SQL query

stroomdev10 avatar Jun 15 '22 14:06 stroomdev10

I think something like this would do it. Gets the app/doc perms for the user and any groups the user belongs to

select *
from (
    select su.uuid, su.name, null via_group, null doc_name, null doc_type, ap.permission
    from app_permission ap
    inner join stroom_user su on su.uuid = ap.user_uuid
    union
    select su_user.uuid, su_user.name, su_grp.name via_group, null doc_name, null doc_type, ap.permission
    from app_permission ap
    inner join stroom_user su_grp on su_grp.uuid = ap.user_uuid
    inner join stroom_user_group sug on su_grp.uuid = sug.group_uuid
    inner join stroom_user su_user on su_user.uuid = sug.user_uuid
    union
    select su.uuid, su.name, null via_group, d.name doc_name, d.type doc_type, dp.permission
    from doc_permission dp
    inner join stroom_user su on su.uuid = dp.user_uuid
    inner join doc d on d.uuid = dp.doc_uuid
    where d.ext = 'meta'
    union
    select su_user.uuid, su_user.name, su_grp.name via_group, d.name doc_name, d.type doc_type, dp.permission
    from doc_permission dp
    inner join stroom_user su_grp on su_grp.uuid = dp.user_uuid
    inner join stroom_user_group sug on su_grp.uuid = sug.group_uuid
    inner join stroom_user su_user on su_user.uuid = sug.user_uuid
    inner join doc d on d.uuid = dp.doc_uuid
    where d.ext = 'meta'
) v
where v.name = 'foo'
order by v.uuid, v.via_group, v.doc_name, v.doc_type, v.permission;

at055612 avatar Jun 15 '22 15:06 at055612

Can this be closed or are you after something in the UI to list all this?

at055612 avatar Aug 09 '22 16:08 at055612