Users.php
См. документацию.
1 <?php
2 
3 /**
4  * @file
5  * @brief контроллер управления моделями пользователей
6  *
7  */
8 
9 namespace Wrong\Models;
10 
12 use Wrong\Start\Env;
14 
15 /**
16  * @brief Groups контроллер управления моделями пользователей, расширяет Controller
17  *
18  */
19 
20 class Users extends Controller implements ModelsInterface
21 {
22  /**
23  * создает нового пользователя в базе данных
24  *
25  * @param string $email Электронный адрес пользователя.
26  * @param string $password Пароль для пользователя.
27  * @param array $groups массив идентификаторов групп, к которым принадлежит пользователь
28  * @param int $owner_group Группа, которой принадлежит пользователь.
29  *
30  * @return int $id Последний вставленный идентификатор.
31  */
32  public static function create($email, $password = '', $groups = [], $owner_group = 1)
33  {
34  $dbh = Connect::getInstance()->dbh;
35  $email = mb_strtolower(trim($email), 'utf-8');
36  $password = trim($password);
37  $groups = json_encode($groups);
38  if (empty($email) || empty($password)) {
39  return;
40  }
41  $sth = $dbh->prepare("SELECT COUNT(*) FROM `users` WHERE `email` = ?");
42  $sth->execute([$email]);
43  if ($sth->fetchColumn()) {
44  return;
45  }
46  $sth = $dbh->prepare("INSERT INTO `users` (`groups`, `owner_group`, `email`, `md5password`, `date_online`, `x_auth_token`, `api_act`, `act`, `ip`) VALUES (:groups, :owner_group, :email, :md5password, '0000-00-00 00:00:00', :x_auth_token, :api_act, :act, :ip)");
47  $sth->bindValue(':groups', $groups);
48  $sth->bindValue(':owner_group', $owner_group);
49  $sth->bindValue(':email', $email);
50  $sth->bindValue('md5password', md5($password));
51  $sth->bindValue(':x_auth_token', md5($password . $email));
52  $sth->bindValue(':api_act', Env::$e->USER_API);
53  $sth->bindValue(':act', Env::$e->USER_ACT);
54  $sth->bindValue(':ip', Env::$e->IP);
55  $sth->execute();
56  return $dbh->lastInsertId();
57  }
58 
59 }
if(!($row=Wrong\Models\Crontabs::find($_POST['id']))) if(! $user->access() ->write($row)) $sth
Definition: edit-cli.php:20
Connect создает подключение к базе данных
Definition: Connect.php:19
static getInstance($ignore_error=false)
Definition: Connect.php:50
Controller контроллер для запросов к БД
Definition: Controller.php:17
Groups контроллер управления моделями пользователей, расширяет Controller.
Definition: Users.php:21
static create($email, $password='', $groups=[], $owner_group=1)
Definition: Users.php:32
Env класс управляющий, добавляющий или записывающий переменные среды
Definition: Env.php:17
static $e
Definition: Env.php:22
ModelsInterface интерфейс управления моделями
$owner_group
Definition: edit-groups.php:15
if(!($row=Wrong\Database\Controller::find($_GET['id'], 'id', $_GET['table']))) $groups
Definition: edit-groups.php:14
$dbh
Definition: session.php:19