Added permission checks for Buildings and terminations
This commit is contained in:
@@ -9,6 +9,8 @@ class User extends mfBaseModel {
|
||||
public $permissions;
|
||||
public $flags;
|
||||
public $address;
|
||||
|
||||
private $my_networks;
|
||||
|
||||
public function init() {
|
||||
$this->table = "Worker";
|
||||
@@ -77,12 +79,27 @@ class User extends mfBaseModel {
|
||||
if(!$this->id) {
|
||||
return false;
|
||||
}
|
||||
if(is_object($this->permissions) && property_exists($this->permissions, "is$what")) {
|
||||
return $this->permissions->{"is$what"};
|
||||
|
||||
if(!is_array($what)) {
|
||||
$what = [$what];
|
||||
}
|
||||
if(is_object($this->address) && property_exists($this->address, "types") && is_array($this->address->types)) {
|
||||
return ($this->address->types[$what]->id) ? true : false;
|
||||
|
||||
foreach($what as $w) {
|
||||
if(is_object($this->permissions) && property_exists($this->permissions, "is$w")) {
|
||||
if($this->permissions->{"is$w"} === true) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
//var_dump($this->address->types);exit;
|
||||
if(is_object($this->address) && property_exists($this->address, "types") && is_array($this->address->types)) {
|
||||
if($this->address->types[$w]->id) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function isAdmin() {
|
||||
@@ -96,4 +113,49 @@ class User extends mfBaseModel {
|
||||
public function __toString() {
|
||||
return $this->username;
|
||||
}
|
||||
|
||||
|
||||
public function getProperty($name) {
|
||||
if($this->$name == null) {
|
||||
|
||||
if(!$this->id) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if($name == "my_networks") {
|
||||
$this->my_networks = $this->getMyNetworks();
|
||||
return $this->my_networks;
|
||||
}
|
||||
|
||||
$classname = ucfirst($name);
|
||||
$idfield = $name."_id";
|
||||
$this->$name = new $classname($this->$idfield);
|
||||
|
||||
if($this->$name->id) {
|
||||
return $this->$name;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->$name;
|
||||
}
|
||||
|
||||
|
||||
private function getMyNetworks() {
|
||||
if(!$this->id) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$my_networks = [];
|
||||
|
||||
$network_list = NetworkAddressModel::search(['address_id' => $this->address_id]);
|
||||
foreach($network_list as $n) {
|
||||
if(!array_key_exists($n->network_id, $my_networks)) {
|
||||
$my_networks[$n->network_id] = new Network($n->network_id);
|
||||
}
|
||||
}
|
||||
|
||||
return $my_networks;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user