diff --git a/User.cpp b/User.cpp new file mode 100644 index 0000000..8811110 --- /dev/null +++ b/User.cpp @@ -0,0 +1,21 @@ +#include "User.h" +#include + +User::User(int id, const std::string& username, const std::string& password) + : id(id), username(username), password(password) {} + +int User::getId() const { return id; } + +std::string User::getUsername() const { return username; } + +std::string User::getPassword() const { return password; } + +Role User::getRole() const { return role; } + +void User::displayMenu() const { + std::cout << "Menu pour " << username << " (role = "; + if(role == Role::ADMIN) std::cout << "ADMIN"; + else if(role == Role::PROF) std::cout << "PROF"; + else std::cout << "STUDENT"; + std::cout << ")\n"; +} \ No newline at end of file diff --git a/User.h b/User.h new file mode 100644 index 0000000..5f583b6 --- /dev/null +++ b/User.h @@ -0,0 +1,31 @@ +#ifndef USER_H +#define USER_H + +#include + +enum class Role { + ADMIN, + PROF, + STUDENT +}; + +class User { +protected: + int id; + std::string username; + std::string passwordHash; + Role role; + +public: + User(int id, const std::string& username, const std::string& passwordHash, Role role); + + virtual ~User() = default; + + int getId() const; + std::string getUsername() const; + Role getRole() const; + + virtual void displayMenu() const = 0; +}; + +#endif \ No newline at end of file