Example #1
0
 public static function login($username, $password)
 {
     if (Configs::get_system_param("auth_method") != "LDAP") {
         $local_user = DigiplayDB::select("* FROM users WHERE username = '******' AND password = '******';", "User");
         if ($local_user) {
             self::$data["user"] = true;
             self::$user_object = $local_user;
         } else {
             return false;
         }
     } else {
         $ldap_instance = new LDAP();
         if (!$ldap_instance->login($username, $password)) {
             return false;
         }
         if (is_object($ldap_instance) && get_class($ldap_instance) == "LDAP") {
             if ($ldap_instance->login_status()) {
                 self::$data = $ldap_instance->userdetails();
                 self::$data["user"] = true;
                 # Get the user's info, or insert them as a new user if there isn't any
                 self::$user_object = Users::get_by_username(self::$data["username"]);
                 if (!self::$user_object) {
                     $id = DigiplayDB::insert("users", array("username" => self::$data["username"], "password" => NULL), "id");
                     self::$user_object = Users::get_by_id($id);
                 }
             } else {
                 return false;
             }
         }
     }
     if (self::$user_object) {
         $result = self::$user_object->get_config_var("user_curlogin");
         if ($result) {
             self::$data["lastlogin"] = $result;
             DigiplayDB::query("UPDATE usersconfigs SET val = '" . time() . "' WHERE userid = " . self::$user_object->get_id() . " AND configid = 3;");
         } else {
             DigiplayDB::query("INSERT INTO usersconfigs (userid,configid,val) VALUES (" . self::$user_object->get_id() . ",3,'" . time() . "');");
             DigiplayDB::query("INSERT INTO usersconfigs (userid,configid,val) VALUES (" . self::$user_object->get_id() . ",1,'');");
         }
         return true;
     } else {
         return false;
     }
 }