blob: e49ebf7031369916492ba568c7624c0ab9b5fc18 (
plain)
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
<?php
require_once('MessageManager.class.php');
class Auth {
protected $mm = null;
protected $uid = false;
public function __construct($uid) {
global $mm;
$this->mm = $mm;
$this->uid = $uid;
}
public function getUID() {
return $this->uid;
}
/**********************************************************************\
* The 'auth' table. *
\**********************************************************************/
// Row Type ////////////////////////////////////////////////////////////
/**
* @return 0=unverified 1=user 2=admin 3=group
*/
protected function getType() {
$type = $this->mm->getStatus($this->uid);
return $type;
}
protected function setType($type) {
$logged_in_uid = $this->mm->isLoggedIn();
$logged_in_obj = $this->mm->getAuthObj($logged_in_uid);
$is_admin = $logged_in_obj->isAdmin();
if (!$is_admin) return false;
return $this->mm->setStatus($this->uid, $type);
}
public function isUser() {
$type = $this->getType();
return ($type===1) || ($type===2);
}
public function isAdmin() {
$type = $this->getType();
return ($type===2);
}
public function isGroup() {
$type = $this->getType();
return ($type===3);
}
public function setUser($is_user) {
$is_user = ($is_user?true:false);
if ($this->isUser() != $is_user) {
$this->setType($is_user?1:0);
}
}
public function setAdmin($is_admin) {
$is_admin = ($is_admin?true:false);
$is_user = $this->isUser();
$this->setType($is_admin?2:($is_user?1:0));
}
// Permissions /////////////////////////////////////////////////////////
public function canRead() {
$logged_in_uid = $this->mm->isLoggedIn();
$is_me = ($logged_in_uid === $this->uid);
$logged_in_obj = $this->mm->getAuthObj($logged_in_uid);
$is_user = $logged_in_obj->isUser();
return ($is_me || $is_user);
}
public function canEdit() {
$logged_in_uid = $this->mm->isLoggedIn();
$is_me = ($logged_in_uid === $this->uid);
$logged_in_obj = $this->mm->getAuthObj($logged_in_uid);
$is_admin = $logged_in_obj->isAdmin();
return ($is_me || $is_admin);
}
// [user|group]name ////////////////////////////////////////////////////
public function getName() {
if (!$this->canRead()) return false;
return $this->mm->getUsername($this->uid);
}
public function setName($new_name) {
if (!$this->canEdit()) return false;
return $this->mm->setUsername($this->uid, $new_name);
}
/**********************************************************************\
* The 'users' table. *
\**********************************************************************/
public function getConf($setting) {
if (!$this->canRead()) return false;
return $this->mm->getUserConf($this->uid, $setting);
}
public function setConf($setting, $value) {
if (!$this->canEdit()) return false;
return $this->mm->setUserConf($this->uid, $setting, $value);
}
public function getConfArray($setting) {
$string = $this->getConf($setting);
return $this->mm->valueToArray($string);
}
public function setConfArray($setting, $list) {
$string = $this->mm->arrayToValue($list);
return $this->setConf($setting, $string);
}
}
|