2021-01-25 00:24:31 +01:00
|
|
|
#ifndef LIBREPOMGR_AUTHENTICATION_H
|
|
|
|
#define LIBREPOMGR_AUTHENTICATION_H
|
|
|
|
|
2022-07-29 22:06:40 +02:00
|
|
|
#include <c++utilities/misc/flagenumclass.h>
|
|
|
|
|
2021-01-25 00:24:31 +01:00
|
|
|
#include <cstdint>
|
|
|
|
#include <string>
|
|
|
|
|
|
|
|
namespace LibRepoMgr {
|
|
|
|
|
|
|
|
enum class UserPermissions : std::uint64_t {
|
2022-03-10 23:19:02 +01:00
|
|
|
None = 0,
|
|
|
|
ReadBuildActionsDetails = (1 << 0),
|
|
|
|
DownloadArtefacts = (1 << 1),
|
|
|
|
ModifyBuildActions = ReadBuildActionsDetails | DownloadArtefacts | (1 << 2),
|
|
|
|
PerformAdminActions = (1 << 3),
|
|
|
|
TryAgain = (1 << 4),
|
2022-07-10 20:08:31 +02:00
|
|
|
AccessSecrets = (1 << 5),
|
2021-01-25 00:24:31 +01:00
|
|
|
DefaultPermissions = ReadBuildActionsDetails,
|
|
|
|
};
|
|
|
|
|
2022-07-10 17:18:29 +02:00
|
|
|
struct UserAuth {
|
|
|
|
std::string_view name;
|
|
|
|
std::string_view password;
|
|
|
|
UserPermissions permissions = UserPermissions::DefaultPermissions;
|
|
|
|
};
|
|
|
|
|
2022-07-29 22:06:40 +02:00
|
|
|
} // namespace LibRepoMgr
|
|
|
|
|
|
|
|
CPP_UTILITIES_MARK_FLAG_ENUM_CLASS(LibPkg, LibRepoMgr::UserPermissions)
|
|
|
|
|
|
|
|
namespace LibRepoMgr {
|
2021-01-25 00:24:31 +01:00
|
|
|
|
|
|
|
struct UserInfo {
|
|
|
|
std::string passwordSha512;
|
|
|
|
UserPermissions permissions = UserPermissions::None;
|
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace LibRepoMgr
|
|
|
|
|
|
|
|
#endif // LIBREPOMGR_AUTHENTICATION_H
|