/
Auth.php
46 lines (38 loc) · 1020 Bytes
/
Auth.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
namespace Project\App;
use PHPixie\ORM;
use Project\App\ORM\Admin\Admin;
use PHPixie\AuthLogin\Providers\Password as PasswordProvider;
/**
* Authorization helper
*/
class Auth
{
/**
* @var Builder
*/
protected $builder;
public function __construct($builder)
{
$this->builder = $builder;
}
public function userDomain()
{
return $this->builder->components()->auth()->domain();
}
public function adminDomain()
{
return $this->builder->components()->auth()->domain('admin');
}
public function addAdmin($username, $password)
{
/** @var PasswordProvider $passwordProvider */
$passwordProvider = $this->adminDomain()->provider('password');
/** @var Admin $admin */
$admin = $this->builder->components()->orm()->createEntity('admin');
$admin->username = $username;
$admin->passwordHash = $passwordProvider->hash($password);
$admin->save();
return $admin;
}
}