summaryrefslogtreecommitdiffhomepage
path: root/src/kernel/KernelKit/UserMgr.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/KernelKit/UserMgr.h')
-rw-r--r--src/kernel/KernelKit/UserMgr.h97
1 files changed, 3 insertions, 94 deletions
diff --git a/src/kernel/KernelKit/UserMgr.h b/src/kernel/KernelKit/UserMgr.h
index e568dd45..66f5a129 100644
--- a/src/kernel/KernelKit/UserMgr.h
+++ b/src/kernel/KernelKit/UserMgr.h
@@ -1,101 +1,10 @@
-// Copyright 2024-2025, Amlal El Mahrouss (amlal@nekernel.org)
+// Copyright 2026, Amlal El Mahrouss (amlal@nekernel.org)
// Licensed under the Apache License, Version 2.0 (see LICENSE file)
// Official repository: https://github.com/nekernel-org/nekernel
#ifndef KERNELKIT_USERMGR_H
#define KERNELKIT_USERMGR_H
-/* ========================================
+#include <KernelKit/UserMgr+User.h>
- Revision History:
-
- 04/03/25: Set users directory as /users/ instead of /usr/
-
- ======================================== */
-
-#include <CompilerKit/CompilerKit.h>
-#include <KernelKit/KPC.h>
-#include <NeKit/Config.h>
-#include <NeKit/KString.h>
-
-///! We got the MGMT, STD (%s format) and GUEST users,
-///! all are used to make authorized operations.
-#define kMgmtUser "NEKERNEL/MGMT/%s"
-#define kGuestUser "NEKERNEL/GUEST/%s"
-#define kStdUser "NEKERNEL/STD/%s"
-
-#define kUsersDir "/users/"
-
-#define kMaxUserNameLen (256U)
-#define kMaxUserTokenLen (256U)
-
-namespace Kernel {
-
-class User;
-
-enum struct UserRingKind : Int32 {
- kRingInvalid = 0,
- kRingStdUser = 444,
- kRingSuperUser = 666,
- kRingGuestUser = 777,
- kRingCount = 3,
-};
-
-using UserPublicKey = Char*;
-using UserPublicKeyType = Char;
-
-/// @brief System User class.
-class User final {
- public:
- User() = delete;
-
- User(const Int32& sel, const Char* username);
- User(const UserRingKind& kind, const Char* username);
-
- ~User();
-
- public:
- NE_COPY_DEFAULT(User)
-
- public:
- bool operator==(const User& lhs);
- bool operator!=(const User& lhs);
-
- public:
- /// @brief Get software ring
- const UserRingKind& Ring();
-
- /// @brief Get user name
- Char* Name();
-
- /// @brief Is he a standard user?
- Bool IsStdUser();
-
- /// @brief Is she a super user?
- Bool IsSuperUser();
-
- /// @brief Saves a password from the public key.
- Bool Save(const UserPublicKey password);
-
- /// @brief Checks if a password matches the **password**.
- /// @param password the password to check.
- Bool Login(const UserPublicKey password);
-
- private:
- UserRingKind mUserRing{UserRingKind::kRingStdUser};
- Char mUserName[kMaxUserNameLen] = {0};
- UInt64 mUserFNV{0UL};
-};
-
-/// \brief Alias for user ptr.
-using UserPtr = User*;
-
-/// \brief Current running user.
-inline UserPtr kCurrentUser = nullptr;
-
-/// \brief Super user.
-inline UserPtr kRootUser = nullptr;
-
-} // namespace Kernel
-
-#endif /* ifndef KERNELKIT_USERMGR_H */
+#endif \ No newline at end of file