Beispiel #1
0
 /**
  * function register user
  * register and store an user in the database
  * @param array $array [username,password]
  * @param bool $added_avatar
  * @return null|void
  */
 static function register_user($array = [], $added_avatar = false)
 {
     if ($added_avatar) {
         $fetch = Adapter::fetch_object(Adapter::secure_query('SELECT * FROM users WHERE mail = :usermail', [':usermail' => Data::$user_instance->user_email]));
         Adapter::insert_array('users', ['account_created' => time(), 'username' => $array['name'], 'novato' => 1, 'mail' => $fetch->mail, 'password' => $fetch->password]);
         Data::user_create_instance($array['name']);
         return null;
     }
     if (strlen($array['password']) >= 5 && strlen($array['password']) <= 30 && preg_match('`[a-z]`', $array['password']) && preg_match('`[0-9]`', $array['password']) && substr_count($array['password'], ' ') == 0) {
         if (Adapter::row_count(Adapter::secure_query("SELECT * FROM cms_azure_id WHERE mail = :email LIMIT 1", [':email' => $array['email']])) == 0) {
             Adapter::insert_array('cms_azure_id', ['mail' => $array['email']]);
             Adapter::insert_array('users', ['account_created' => time(), 'username' => $array['username'], 'novato' => 1, 'mail' => $array['email'], 'password' => password_hash($array['password'], PASSWORD_BCRYPT)]);
             Mailer::send_nux_mail($array['email']);
             self::user_login($array['username'], $array['password'], 1);
             return;
         } else {
             header('HTTP/1.1 409 Conflict');
             echo '{"error":"registration_email_in_use"}';
             return null;
         }
     } else {
         header('HTTP/1.1 400 Bad Request');
         echo '{"error":"registration_email_in_use"}';
         return null;
     }
 }
Beispiel #2
0
 /**
  * function user_create_instance
  * create instance and get data of a user
  * @param $user_id
  * @param bool $return
  * @return User
  */
 static function user_create_instance($user_id, $return = false)
 {
     // get user_data
     $row = is_numeric($user_id) ? Adapter::fetch_object(Adapter::secure_query("SELECT * FROM users WHERE id = :userid LIMIT 1", [':userid' => $user_id])) : Adapter::fetch_object(Adapter::secure_query("SELECT * FROM users WHERE username = :userid LIMIT 1", [':userid' => $user_id]));
     $verified = Adapter::fetch_array(Adapter::secure_query('SELECT verified FROM cms_users_verification WHERE user_id = :userid', [':userid' => $row->id]));
     $new_verify = $verified['verified'];
     if ($new_verify != 'false' && $new_verify != 'true') {
         Mailer::send_nux_mail($row->mail);
         $new_verify = 'false';
     }
     $is_admin = $row->rank >= 7 ? true : false;
     $pref = new JsonPreferences(true, $row->hide_online, $row->hide_inroom, $row->block_newfriends);
     $user_preferences = json_decode($pref->get_json());
     $count = 0;
     $badge = [];
     foreach (Adapter::secure_query("SELECT * FROM users_badges WHERE user_id = :userid", [':userid' => $row->id]) as $row_a) {
         $f = new JsonBadge($row_a['badge_id'], $row_a['badge_id'], $row_a['badge_id']);
         $badge[$count] = json_decode($f->get_json());
         if (!empty($badge[$count])) {
             $count++;
         } else {
             unset($badge[$count]);
         }
     }
     $count = 0;
     $badge_used = [];
     foreach (Adapter::secure_query("SELECT * FROM users_badges WHERE user_id = :userid AND badge_slot != 0", [':userid' => $row->id]) as $row_a) {
         $f = new JsonUsedBadge($row_a['badge_slot'], $row_a['badge_id'], $row_a['badge_id'], $row_a['badge_id']);
         $badge_used[$count] = json_decode($f->get_json());
         if (!empty($badge_used[$count])) {
             $count++;
         } else {
             unset($badge_used[$count]);
         }
     }
     $count = 0;
     $user_friends = [];
     foreach (Adapter::secure_query("SELECT user_two_id FROM messenger_friendships WHERE user_one_id = :userid", [':userid' => $row->id]) as $row_a) {
         $row_b = Adapter::fetch_object(Adapter::secure_query("SELECT username,motto,id,look FROM users WHERE id = :userid LIMIT 1", [':userid' => $row_a['user_two_id']]));
         $f = new JsonFriend($row_b->username, $row_b->motto, $row_b->id, $row_b->look);
         $user_friends[$count] = json_decode($f->get_json());
         if (!empty($user_friends[$count])) {
             $count++;
         } else {
             unset($user_friends[$count]);
         }
     }
     $count = 0;
     $user_rooms = [];
     foreach (Adapter::secure_query("SELECT * FROM rooms_data WHERE owner = :userid", [':userid' => $row->username]) as $row_a) {
         $f = new JsonRoom($row_a['id'], $row_a['caption'], $row_a['description'], $row->id);
         $user_rooms[$count] = json_decode($f->get_json());
         if (!empty($user_rooms[$count])) {
             $count++;
         } else {
             unset($user_rooms[$count]);
         }
     }
     $count = 0;
     $user_groups = [];
     foreach (Adapter::secure_query("SELECT * FROM groups_members WHERE user_id = :userid", [':userid' => $row->username]) as $row_a) {
         $row_b = Adapter::fetch_object(Adapter::secure_query("SELECT * FROM groups_data WHERE id = :userid LIMIT 1", [':userid' => $row_a['group_id']]));
         $f = new JsonGroup($row_a['group_id'], $row_b->name, $row_b->desc, 'NORMAL', $row_b->badge, $row_b->room_id, $row_b->colour1, $row_b->colour2, false);
         $user_groups[$count] = json_decode($f->get_json());
         if (!empty($user_groups[$count])) {
             $count++;
         } else {
             unset($user_groups[$count]);
         }
     }
     $user_json = new JsonUser($row->id, $row->username, $row->mail, $row->gender, $row->motto, $row->look, $badge_used, date('Y-m-d', $row->account_created) . 'T' . date('H:i:s', $row->account_created) . '.000+0000', $new_verify);
     self::$user_instance = new User($user_id, $row->username, $row->mail, $row->gender, $row->motto, $row->credits, $row->activity_points, "127.0.0.1", "Default", $row->look, $is_admin, $row->builders_expire, $badge, $user_friends, $user_rooms, $badge_used, $user_groups, $user_json, $user_preferences, $new_verify, $row->novato);
     if ($return) {
         return self::$user_instance;
     }
     $_SESSION['user_data'] = serialize(self::$user_instance);
     return null;
 }