26 #include "core/auth/Group_odb.h"    52     odb::transaction t(db->begin());
    61     db->persist(new_group);
    76     db->update(new_group);
    77     audit_add_to_group->finalize();
    89     using Result = odb::result<Auth::Group>;
    91     odb::transaction t(db->begin());
   103         rep[
"data"]       = json::array();
   107         for (
const auto &group : result)
   109             if (
ctx_.
session->security_context().check_permission(
   111                     {.group = {.group_id = group.id()}}))
   112                 rep[
"data"].push_back(
   124     odb::transaction t(db->begin());
   149     odb::transaction t(db->begin());
   166     using Query = odb::query<Auth::Group>;
   169     auto grp_with_same_name =
   173     if (grp_with_same_name && grp_with_same_name != grp)
   176             "data/attributes/name",
   177             BUILD_STR(
"A group named " << grp->name() << 
" already exists."));
   181 std::vector<CRUDResourceHandler::ActionActionParam>
   184     std::vector<CRUDResourceHandler::ActionActionParam> ret;
   190     catch (
const json::out_of_range &e)
 
static IUserGroupMembershipEventPtr UserGroupMembershipEvent(const DBPtr &database, Auth::GroupPtr target_group, Auth::UserPtr target_user, IAuditEntryPtr parent)
 
virtual boost::optional< json > create_impl(const json &req) override
Create a new group. 
 
Someone joined the group. 
 
An exception class for general API error. 
 
This is the header file for a generated source file, GitSHA1.cpp. 
 
static SecurityContext & instance()
 
static json serialize(const Auth::Group &group, const SecurityContext &sc)
 
static void validate(const Group &grp)
Validate the group's attributes. 
 
virtual boost::optional< json > delete_impl(const json &req) override
Delete a group. 
 
A authentication group regroup users that share permissions. 
 
virtual UserSecurityContext & security_context() const override
Helper function that returns the security context. 
 
Audit::IAuditEntryPtr audit
The initial audit trail for the request. 
 
GroupCRUD(RequestContext ctx)
 
std::unique_ptr< CRUDResourceHandler > CRUDResourceHandlerUPtr
 
static std::string serialize(const Auth::Group &in, const SecurityContext &sc)
 
static CRUDResourceHandlerUPtr instanciate(RequestContext)
 
std::shared_ptr< Group > GroupPtr
 
static void unserialize(Auth::Group &out, const json &in, const SecurityContext &sc)
 
static IGroupEventPtr GroupEvent(const DBPtr &database, Auth::GroupPtr target_group, IAuditEntryPtr parent)
 
odb::query< Tools::LogEntry > Query
 
All modules that provides features to Leosac shall be in this namespace. 
 
void validate_and_unique(Auth::GroupPtr grp)
Make sure the group's attribute is valid (by calling GroupValidator) and that the name is unique...
 
virtual boost::optional< json > update_impl(const json &req) override
Update information about a group. 
 
Base CRUD handler for use within the websocket module. 
 
virtual std::vector< ActionActionParam > required_permission(Verb verb, const json &req) const override
 
#define BUILD_STR(param)
Internal macro. 
 
odb::result< Tools::LogEntry > Result
 
Holds valuable pointer to provide context to a request. 
 
std::shared_ptr< odb::database > DBPtr
 
virtual boost::optional< json > read_impl(const json &req) override
Retrieve information about a group.