users groups roles for all projects in a single table

LabKey Support Forum (Inactive)
users groups roles for all projects in a single table Jon (LabKey DevOps)  2018-06-29 13:44
Status: Closed
 
Hi Alper,

I unfortunately do not have a diagram that we can provide you, but the tables you will want to be focused on are:

core.containers - This gives you the name of the project/folder and what its parent folder above it is. Each container has its own unique entityId that appears in an alphanumeric string like 8f12c8b9-4abe-1036-81db-3d45df6161f0.

core.userdata - This gives you the actual user data with their userIds.

core.principals - This lists users, groups, and permission roles, specifically what containers they're connected to. You can see the userId value (which can contain a group value as well), the container string value, and the type (u for user, g for group, r for role). The default system generated groups, like Admins, are clearly seen with negative userId values.

core.members - This shows what users are tied to what groups using the userId value and the groupId value.

core.roleassignments - This shows what users and groups are assigned to a specific role/permission and for the specific container.

It would be a set of complex JOINs to do, but it is possible for you to identify permissions for a specific user and trace it to the container and what permissions they have under the container individually or being apart of a group, similarly to how the userAccess.view page works when going into the Site Users page and clicking on a user's permissions link.

Regards,

Jon