private function show($rules) { $out = false; if (isset($rules['always'])) { $out = $rules['always']; } if (isset($rules['logged'])) { $out = $rules['logged'] ? is_object($this->user) : !is_object($this->user); } if (is_object($this->user) && isset($rules['in_role'])) { if (!is_array($rules['in_role'])) { $rules['in_role'] = array($rules['in_role']); } foreach ($rules['in_role'] as $role) { $out |= $this->user->hasRole($role); } } if (is_object($this->user)) { if (isset($rules['out_role'])) { if (!is_array($rules['out_role'])) { $rules['out_role'] = array($rules['out_role']); } $test = true; foreach ($rules['out_role'] as $role) { $test &= !$this->user->hasRole($role); } $out = $test; } if (isset($rules['license'])) { $active = $this->user->getActiveLicenses(); foreach ($rules['license'] as $gruppo => $licenses) { if (isset($active[$gruppo])) { $out &= in_array($active[$gruppo], $licenses); } else { $out = false; } } } } return $out; }