diff options
Diffstat (limited to 'includes/model')
-rw-r--r-- | includes/model/User_model.php | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/includes/model/User_model.php b/includes/model/User_model.php index c2d2282e..d79ede17 100644 --- a/includes/model/User_model.php +++ b/includes/model/User_model.php @@ -11,4 +11,28 @@ function User($id) { return null; } +/** + * Returns User by api_key. + * @param string $api_key User api key + * @return Matching user, null or false on error + */ +function User_by_api_key($api_key) { + $user = sql_select("SELECT * FROM `User` WHERE `api_key`='" . sql_escape($api_key) . "' LIMIT 1"); + if($user === false) + return false; + if (count($user) == 0) + return null; + return $user[0]; +} + +/** + * Generates a new api key for given user. + * @param User $user + */ +function User_reset_api_key($user) { + $user['api_key'] = md5($user['Nick'] . time() . rand()); + sql_query("UPDATE `User` SET `api_key`='" . sql_escape($user['api_key']) . "' WHERE `UID`='" . sql_escape($user['UID']) . "' LIMIT 1"); + engelsystem_log("API key resetted."); +} + ?>
\ No newline at end of file |