summaryrefslogtreecommitdiff
path: root/includes/model/User_model.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/model/User_model.php')
-rw-r--r--includes/model/User_model.php24
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