stroom
stroom copied to clipboard
Ability to list permissions for a User or set of Users
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
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;
Can this be closed or are you after something in the UI to list all this?