// user management // // Date: 2024-01-04 #pragma once #include #include #include #include // name password time-limit // // developer calc(dev-sn + login-times) 6min // // owner calc(dev-sn + login-times) 30min // // admin dev-sn 1hour // // user none, default level always // class user_priv : public sane_opt_provider { std::map login_times_; std::string cfg_file_; std::string dev_sn_ = "01234567AABBCCDDEE"; std::string name_; std::string pwd_; int priv_ = USER_PRIVILEGE_COMMON; bool login(void); void reset_privilege(void); public: user_priv(); protected: ~user_priv(); // sane_opt_provider public: virtual int set_value(const char* name, void* val) override; public: bool has_privilege(int priv); int get_current_user_login_times(void); };