arch-repo-manager/librepomgr/authentication.h

42 lines
991 B
C
Raw Normal View History

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 {
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,
};
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