VoileWeb.Auth.PermissionManager (Voile v0.1.26)

Copy Markdown View Source

Module for managing permissions and roles in the system. Provides functions to create, update, and query permissions and roles.

Summary

Functions

Create a new permission.

Create a new role.

Delete a permission.

Delete a role.

Get a permission by ID.

Get a permission by name.

Get a role by ID with preloaded permissions.

List all available permissions.

List permissions with pagination. Returns a tuple of {permissions, total_pages}.

List all roles.

List roles with pagination. Returns a tuple of {roles, total_pages}.

Get all direct permissions for a user.

Get all roles assigned to a user.

Get all users assigned to a role.

Lists all users assigned to a specific role by role name. Returns a list of User structs (not UserRoleAssignments).

Get users assigned to a role with pagination. Returns {users, total_pages}.

Remove a permission from a role.

Seed default permissions for the system.

Seed default roles for the system.

Set all permissions for a role, replacing existing ones.

Update a role.

Functions

add_permission_to_role(role_id, permission_id)

Add a permission to a role.

create_permission(attrs)

Create a new permission.

create_role(attrs)

Create a new role.

delete_permission(permission)

Delete a permission.

delete_role(role)

Delete a role.

get_permission(id)

Get a permission by ID.

get_permission_by_name(name)

Get a permission by name.

get_role(id)

Get a role by ID with preloaded permissions.

list_permissions()

List all available permissions.

list_permissions_paginated(page \\ 1, per_page \\ 10)

List permissions with pagination. Returns a tuple of {permissions, total_pages}.

list_roles()

List all roles.

list_roles_paginated(page \\ 1, per_page \\ 10)

List roles with pagination. Returns a tuple of {roles, total_pages}.

list_user_direct_permissions(user_id, opts \\ [])

Get all direct permissions for a user.

list_user_roles(user_id, opts \\ [])

Get all roles assigned to a user.

list_users_with_role(role_id, opts \\ [])

Get all users assigned to a role.

list_users_with_role_by_name(role_name)

Lists all users assigned to a specific role by role name. Returns a list of User structs (not UserRoleAssignments).

Examples

iex> list_users_with_role_by_name("librarian")
[%User{}, ...]

list_users_with_role_paginated(role_id, page, per_page, opts \\ [])

Get users assigned to a role with pagination. Returns {users, total_pages}.

remove_permission_from_role(role_id, permission_id)

Remove a permission from a role.

seed_default_permissions()

Seed default permissions for the system.

seed_default_roles()

Seed default roles for the system.

set_role_permissions(role_id, permission_ids)

Set all permissions for a role, replacing existing ones.

update_permission(permission, attrs)

Update a permission.

update_role(role, attrs)

Update a role.