-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUserManager.php
More file actions
81 lines (70 loc) · 1.79 KB
/
Copy pathUserManager.php
File metadata and controls
81 lines (70 loc) · 1.79 KB
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php
namespace vkabachenko\phpuser;
use yii\base\Object;
use yii\helpers\VarDumper;
class UserManager extends Object
{
const FILENAME = 'users.php';
/**
* @var $_params array
* Structure:
* [
* 'users' => [
* 'user1'=> [
* 'password' => 'hash11',
* 'authkey => 'hash12'
* ],
* 'user2' => [
* 'password' => 'hash21',
* 'authkey => 'hash22'
* ],
* ........................................
* ]
* ]
*/
private $_params;
/**
* @var $_file string user config file with path
*/
private $_file;
public $path; // alias of directory where config file exists
/**
* prepare array of users in init
*/
public function init()
{
$this->_file = \Yii::getAlias($this->path.'/config/'.self::FILENAME);
$this->loadFromFile();
}
/**
* @param $userData array
* structure:
* ['user1' => [
* 'password' => 'hash11',
* 'authkey => 'hash12']
* ]
*/
public function addUser($newData)
{
$this->_params['users'] = array_merge($this->_params['users'],$newData);
$this->saveToFile();
}
/**
* load user data from config file
*/
private function loadFromFile()
{
if (is_file($this->_file)) {
$this->_params = require($this->_file);
} else {
$this->_params = ['users' => []];
}
}
/**
* save user data to config file
*/
private function saveToFile()
{
file_put_contents($this->_file, "<?php\nreturn " . VarDumper::export($this->_params) . ";\n", LOCK_EX);
}
}