- <?php
-
- namespace App\Models;
-
- use \App\Entity\User;
- use \App\Entity\Session;
-
- class Auth {
- public function __construct() {}
-
- public function user_name_is_exists(String $uname) :bool {
- $tablename = User::get_tablename();
- $sql = "SELECT COUNT(*) FROM `{$tablename}` WHERE `name`='{$uname}'";
- $result = app() -> db() -> query($sql);
- $d = $result -> fetch_assoc();
- return $d["COUNT(*)"] ? true : false;
- }
-
- public function signup(String $uname, String $password) {
- $passhash = sha1($password);
-
- $user = new User();
- $user -> name = $uname;
- $user -> passhash = $passhash;
- $user -> create_at = get_formatted_timestamp();
-
- return $user -> create_new() ? $user : false;
- }
-
- public function signin(String $uname, String $password) {
- $passhash = sha1($password);
-
- $tablename = User::get_tablename();
- $sql = "SELECT `id` FROM `{$tablename}` WHERE `name`='{$uname}' AND `passhash`='{$passhash}'";
- $result = app() -> db() -> query($sql);
-
- if(!$result) {
- return false;
- }
-
- $d = $result -> fetch_assoc();
- if(!isset($d["id"])) {
- return false;
- }
-
- $session = new Session();
-
- return $session -> init_for_user($d["id"]) ?? false;
- }
-
- public function signout(String $token) :bool {
- $session = new Session();
- if(!$session -> init_by_token($token)) {
- return false;
- }
-
- return $session -> kill();
- }
- }