ORE Studio 0.0.4
Loading...
Searching...
No Matches
Public Types | Public Member Functions | List of all members
role_permission_repository Class Reference

Reads and writes role-permission assignments to data storage. More...

#include <role_permission_repository.hpp>

Collaboration diagram for role_permission_repository:
Collaboration graph

Public Types

using context = ores::database::context
 

Public Member Functions

 role_permission_repository (context ctx)
 
std::string sql ()
 Returns the SQL created by sqlgen to construct the table.
 
std::vector< domain::role_permissionread_latest ()
 Reads all active role-permission assignments.
 
std::vector< domain::role_permissionread_latest_by_role (const boost::uuids::uuid &role_id)
 Reads all permissions assigned to a specific role.
 
std::vector< domain::role_permissionread_latest_by_permission (const boost::uuids::uuid &permission_id)
 Reads all roles that have a specific permission.
 
void remove (const boost::uuids::uuid &role_id, const boost::uuids::uuid &permission_id)
 Removes a specific role-permission assignment.
 
void remove_all_for_role (const boost::uuids::uuid &role_id)
 Removes all permission assignments for a role.
 
std::map< std::string, std::vector< std::string > > read_all_role_permission_codes ()
 Gets all role-permission mappings with permission codes in a single query.
 
std::map< std::string, std::vector< std::string > > read_role_permission_codes (const std::vector< boost::uuids::uuid > &role_ids)
 Gets permission codes for specific roles in a single query.
 
void write (const domain::role_permission &role_permission)
 Writes role-permission assignments to database.
 
void write (const std::vector< domain::role_permission > &role_permissions)
 

Detailed Description

Reads and writes role-permission assignments to data storage.

Member Function Documentation

◆ read_all_role_permission_codes()

std::map< std::string, std::vector< std::string > > read_all_role_permission_codes ( )

Gets all role-permission mappings with permission codes in a single query.

Returns a map from role_id (as string) to vector of permission codes. Uses JOINs to efficiently fetch all data in one database round-trip.

Here is the caller graph for this function:

◆ read_role_permission_codes()

std::map< std::string, std::vector< std::string > > read_role_permission_codes ( const std::vector< boost::uuids::uuid > &  role_ids)

Gets permission codes for specific roles in a single query.

More efficient than read_all_role_permission_codes when only a few roles are needed. Uses IN clause with JOINs.