lintel 0.2.0
Loading...
Searching...
No Matches
UserController.h
Go to the documentation of this file.
1#ifndef LINTEL_USERCONTROLLER_H
2#define LINTEL_USERCONTROLLER_H
3
9
10namespace lintel {
13{
14private:
15 std::shared_ptr<GroupRepository> m_groupRepository;
16 std::shared_ptr<UserRepository> m_userRepository;
17 Group m_adminUser;
18 Group m_userUser;
19
20 ADD_HANDLER_METHOD("/user/login", Post, loginOf);
21
22 ADD_HANDLER_METHOD("/user/logout", Delete, logoutOf);
23
24 ADD_HANDLER_METHOD("/user/state", Get, loginStateOf);
25
26 ADD_HANDLER_METHOD(R"(/user/groups)", Get, allGroupsOf);
27
29
30 ADD_HANDLER_METHOD(R"(/user/groups/([^\/]+)/([^\/]+))", Get, allGroupsOfGroupNameAndIsVirtualGroup);
31
32 ADD_HANDLER_METHOD(R"(/user/users)", Get, allUsersOf);
33
34 ADD_HANDLER_METHOD(R"(/user/users/([^\/]+))", Get, allUsersOfUserName);
35
36 ADD_HANDLER_METHOD("/user/add", Post, addUser);
37
38 ADD_HANDLER_METHOD("/user/update", Put, updateUser);
39
40 ADD_HANDLER_METHOD("/user/password", Put, changePasswordOf);
41
42 ADD_HANDLER_METHOD(R"(/user/sessions)", Get, allSessionsOf);
43
44 ADD_HANDLER_METHOD(R"(/user/sessions/([^\/]+))", Delete, revokeSessionOf);
45
46 ADD_HANDLER_METHOD("/user/delete", Delete, deleteUser);
47
48public:
49 explicit UserController(const std::shared_ptr<IAuthService> &authService,
50 std::shared_ptr<GroupRepository> groupRepository,
51 std::shared_ptr<UserRepository> userRepository);
52};
53
54}// namespace lintel
55#endif// LINTEL_USERCONTROLLER_H
#define ADD_HANDLER_METHOD(pattern, httpType, name)
Definition Controller.h:25
Definition Controller.h:90
@ Get
Definition Controller.h:121
@ Post
Definition Controller.h:121
@ Put
Definition Controller.h:121
@ Delete
Definition Controller.h:121
Definition Group.h:35
Definition UserController.h:13
UserController(const std::shared_ptr< IAuthService > &authService, std::shared_ptr< GroupRepository > groupRepository, std::shared_ptr< UserRepository > userRepository)
Definition BaseFeature.h:6
constexpr std::string_view type_name()
Definition TypeName.h:9