119 lines
3.3 KiB
PHP
119 lines
3.3 KiB
PHP
<?php
|
|
|
|
require_once "globals.php";
|
|
require_once "common_func.php";
|
|
|
|
require_once "controller.php";
|
|
|
|
$userdb = new \SleekDB\Store(USERDB, DATADIR, ["timeout" => false]);
|
|
|
|
const PRIVILEGE_NONE = "none";
|
|
const PRIVILEGE_PLAYER = "player";
|
|
const PRIVILEGE_CREATOR = "creator";
|
|
const PRIVILEGE_QUIZMASTER = "admin"; // TODO: refactor!
|
|
|
|
//function add_user(string $nickname, string $password, string $realname, array $groupids = [], string $privilege = PRIVILEGE_PLAYER): bool
|
|
//{
|
|
// global $userdb;
|
|
// if (count(get_user($nickname)) != 0) { // user exists
|
|
// return false;
|
|
// }
|
|
//
|
|
// $user_data = [
|
|
// "nickname" => $nickname,
|
|
// "password" => password_hash($password, PASSWORD_DEFAULT),
|
|
// "realname" => $realname,
|
|
// "groups" => $groupids,
|
|
// "privilege" => $privilege
|
|
// ];
|
|
// foreach ($groupids as $groupid) {
|
|
// change_group_user_assignments($groupid, $nickname, null);
|
|
// }
|
|
// $userdb->insert($user_data);
|
|
// return true; // user registration successful
|
|
//}
|
|
//
|
|
//function delete_user(string $nickname)
|
|
//{
|
|
// global $userdb;
|
|
// if ($nickname == QUIZMASTER_NICKNAME) {
|
|
// return;
|
|
// }
|
|
//
|
|
// $user_data = get_user($nickname);
|
|
// if (count($user_data) !== 0) {
|
|
// foreach ($user_data["groups"] as $groupid) {
|
|
// change_group_user_assignments($groupid, null, $nickname);
|
|
// }
|
|
// $userdb->deleteBy(["nickname", "=", $nickname]);
|
|
// }
|
|
//}
|
|
|
|
function get_user(string $nickname): array
|
|
{
|
|
global $userdb;
|
|
$user_data_array = $userdb->findBy(["nickname", "=", $nickname]);
|
|
return count($user_data_array) != 0 ? $user_data_array[0] : [];
|
|
}
|
|
|
|
function update_user(array $user_data)
|
|
{
|
|
global $userdb;
|
|
return $userdb->update($user_data);
|
|
}
|
|
|
|
//function change_password(string $nickname, string $old, string $new): bool
|
|
//{
|
|
// $user_data = get_user($nickname);
|
|
// if (count($user_data) != 0) {
|
|
// if (password_verify($old, $user_data["password"])) {
|
|
// $user_data["password"] = password_hash($new, PASSWORD_DEFAULT);
|
|
// update_user($user_data);
|
|
// return true;
|
|
// }
|
|
// }
|
|
// return false;
|
|
//}
|
|
|
|
function change_user_group_assignments(string $nickname, $groupname_add, $groupname_remove)
|
|
{
|
|
$user_data = get_user($nickname);
|
|
if (count($user_data) != 0) {
|
|
alter_array_contents($user_data["groups"], $groupname_add, $groupname_remove);
|
|
update_user($user_data); // update user
|
|
}
|
|
}
|
|
|
|
//function change_privilege_level(string $nickname, string $privilege)
|
|
//{
|
|
// $user_data = get_user($nickname);
|
|
// if (count($user_data) != 0) {
|
|
// $user_data["privilege"] = $privilege;
|
|
// update_user($user_data);
|
|
// }
|
|
//}
|
|
//
|
|
//function check_user_credentials(string $nickname, string $password): bool
|
|
//{
|
|
// $user_data = get_user($nickname);
|
|
// if (count($user_data) != 0) {
|
|
// return password_verify($password, $user_data["password"]);
|
|
// } else {
|
|
// return false;
|
|
// }
|
|
//}
|
|
//
|
|
//function get_all_users(): array
|
|
//{
|
|
// global $userdb;
|
|
// return $userdb->findAll();
|
|
//}
|
|
//
|
|
//function get_all_nicknames() : array {
|
|
// $nicknames = [];
|
|
// $user_data_array = get_all_users();
|
|
// foreach ($user_data_array as $user_data) {
|
|
// $nicknames[] = $user_data["nickname"];
|
|
// }
|
|
// return $nicknames;
|
|
//}
|