22 #include "core/auth/Door_odb.h" 23 #include "core/auth/User_odb.h" 38 return std::make_unique<AccessOverview>(ctx);
45 odb::transaction t(db->begin());
56 std::vector<Auth::UserPtr> users;
57 for (
auto itr_odb(users_odb.begin()); itr_odb != users_odb.end(); ++itr_odb)
58 users.push_back(itr_odb.load());
60 for (
const auto &door : doors)
62 std::set<Auth::UserId> unique_user_ids;
63 json door_info = {{
"door_id", door.
id()}, {
"user_ids", json::array()}};
64 for (
const auto &lazy_mapping : door.lazy_mapping())
66 auto mapping = lazy_mapping.load();
67 for (
const auto &user_ptr : users)
71 if (unique_user_ids.count(user_ptr->id()))
75 if (mapping->has_user_indirect(user_ptr))
77 unique_user_ids.insert(user_ptr->id());
81 for (
const auto &
id : unique_user_ids)
82 door_info[
"user_ids"].push_back(
id);
83 rep.push_back(door_info);
89 std::vector<ActionActionParam>
92 std::vector<ActionActionParam> perm_;
static MethodHandlerUPtr create(RequestContext)
The base class for API method handler implementation.
std::vector< ActionActionParam > required_permission(const json &req) const override
Return a list of "Action" / "ActionParam" that must pass before the request is processed.
This is the header file for a generated source file, GitSHA1.cpp.
std::unique_ptr< MethodHandler > MethodHandlerUPtr
virtual json process_impl(const json &req) override
The API method implementation.
All modules that provides features to Leosac shall be in this namespace.
UserId id() const noexcept
Holds valuable pointer to provide context to a request.
Overview of users/doors access permission.
std::shared_ptr< odb::database > DBPtr
AccessOverview(RequestContext ctx)