29 std::shared_ptr<const IAccessProfile> p2)
44 result->addAccessSchedule(
nullptr, schedule);
48 result->addAccessSchedule(
nullptr, schedule);
51 std::string door_name;
52 std::vector<Tools::IScheduleCPtr> schedules;
53 for (
const auto &name_sched_pair : t_p1->
schedules())
55 std::tie(door_name, schedules) = name_sched_pair;
59 result->addAccessSchedule(target, sched);
61 for (
const auto &name_sched_pair : t_p2->
schedules())
63 std::tie(door_name, schedules) = name_sched_pair;
67 result->addAccessSchedule(target, sched);
std::shared_ptr< AuthTarget > AuthTargetPtr
Represent an object that we are authorizing against (a door).
virtual const std::map< std::string, std::vector< Tools::IScheduleCPtr > > & schedules() const
Returns the map of schedule for each target (except the default target)
std::shared_ptr< IAccessProfile > IAccessProfilePtr
Holds classes relevant to the Authentication and Authorization subsystem.
Concrete implementation of a simple access control class.
Leosac::Tools::SingleTimeFrame SingleTimeFrame
virtual const std::vector< Tools::IScheduleCPtr > & defaultSchedules() const
virtual IAccessProfilePtr merge(std::shared_ptr< const IAccessProfile > p1, std::shared_ptr< const IAccessProfile > p2)
Build a new Profile object by merging two profiles.
std::shared_ptr< SimpleAccessProfile > SimpleAccessProfilePtr