64 User *
get (
const std::string &who);
70 const User *user)
const;
73 bool use_attribute =
false)
const;
76 const User *visibleBy =
nullptr)
const;
78 const std::string &name,
Generic data type.
Definition: parsnip.h:81
std::vector< Definition > Definitions
Definition: parsnip_command.h:117
int CommandId
Definition: parsnip_command.h:109
Connection to a pianod client, along with context and state of that connection.
Definition: connection.h:54
Interpreter class based on Parsnip template, customized base for pianod interpreters with the additio...
Definition: interpreter.h:101
Definition: interpreter.h:57
std::map< std::string, CommandId > CommandIds
Definition: interpreter.h:59
Pianod service, a customized FootballService for Pianod connections.
Definition: connection.h:115
A response collector/aggregator.
Definition: response.h:197
Type combining RESPONSE_CODE with a value or explanation:
Definition: response.h:49
Store key-value pairs of string keys & mixed types using Parsnip::Data.
Definition: datastore.h:76
Data about each user.
Definition: user.h:53
static time_t write_time
Definition: user.h:56
Container and manager class for users.
Definition: users.h:32
static const PianodSchema::CommandIds & json_request_names(PianodSchema &schema)
Retrieve names for our JSON requests, and make schema revisions.
Definition: usercommand.cpp:205
const std::string & shadowUserName() const
Get the name of the user used as a template for shadow users.
Definition: users.cpp:66
StoredSourceList getStoredSources(WhichSources selection, const User *visibleBy=nullptr) const
Return a list of persisted datasource parameters.
Definition: users.cpp:366
std::vector< PianodConnection * > getUserConnections(PianodService &service, const User *user) const
Retrieve a list of a user's connections.
Definition: users.cpp:301
UserList getUsersPresent(PianodService &service, bool use_attribute=false) const
Retrieve a list of a users connected.
Definition: users.cpp:329
static const Parsnip::Parser::Definitions & parser_definitions()
Definition: usercommand.cpp:165
std::string shadow_user_name
Definition: users.h:34
void restore()
Resubstantiate a user from the XML userdata file.
Definition: users.cpp:92
UserList allUsers(void) const
Definition: users.h:74
virtual ResponseCollector handleCommand(Parsnip::Parser::CommandId, const Parsnip::Data &options, PianodConnection &conn) override
Command handler.
Definition: usercommand.cpp:266
static time_t writeTime(void)
Definition: users.h:55
bool validUserList(Football::Connection *event, char *const *username)
virtual const Parsnip::Parser::Definitions & getParserDefinitions() override
Retrieve the parser definitions handled by the interpreter.
Definition: usercommand.cpp:198
void createDefaultUser()
Add the default 'admin' user to the users list.
Definition: users.cpp:79
bool persist()
Persist user data to a file.
Definition: users.cpp:137
RESPONSE_CODE findStoredSource(const std::string &type, const std::string &name, User *forWho, UserData::JSONData **found, User **owner)
Find stored source parameters for use.
Definition: users.cpp:408
float periodic(void)
Execute periodic tasks:
Definition: users.cpp:172
void clearPrivilege(Privilege priv)
Disable a privilege for all users.
Definition: users.cpp:291
virtual bool authorizedCommand(Parsnip::Parser::CommandId, PianodConnection &conn) override
Check whether a command is authorized.
Definition: usercommand.cpp:235
User * authenticate(const std::string &who, const std::string &password)
Verify a user's credentials.
Definition: users.cpp:254
void deleteUser(User *user)
Remove a user from the registered list of users.
Definition: users.cpp:201
User * addUser(User &user)
Add a user to the list of known users.
Definition: users.cpp:186
WhichSources
Definition: users.h:36
@ Listed
Sources that are publicly known.
@ Restorable
Sources for automatic restore.
@ User
Sources owned by a specific user.
User * get(const std::string &who)
Retrieve a user's record.
Definition: users.cpp:240
std::vector< StoredSourcePair > StoredSourceList
Definition: users.h:54
User * tryget(const std::string &who)
Retrieve a user's record.
Definition: users.cpp:231
virtual ~UserManager()
Definition: users.cpp:433
static bool needWrite(void)
Definition: users.h:56
std::function< bool(const User *user)> UserSelectionPredicate
Definition: users.h:52
std::pair< User *, UserData::DataStore * > StoredSourcePair
Definition: users.h:53
UserList getUsers(UserSelectionPredicate predicate=[](const User *) { return true;}) const
Retrieve a list of users matching some predicate.
Definition: users.cpp:313
Football public declarations.
std::vector< const class User * > UserList
Definition: fundamentals.h:348
enum server_status_t RESPONSE_CODE
pianod command processing.
Parsnip command-line parsing.
User data, privileges, details and preferences implementation.
Privilege
User privilege flags, corresponding to an array position.
Definition: user.h:32
UserManager * user_manager
Definition: users.cpp:437
Response send_privileges(const User *user)
Assemble a user's privileges into a response.
Definition: usercommand.cpp:35