projects
/
platal.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Backport
[platal.git]
/
classes
/
platal.php
diff --git
a/classes/platal.php
b/classes/platal.php
index
5716199
..
e72fc0b
100644
(file)
--- a/
classes/platal.php
+++ b/
classes/platal.php
@@
-125,7
+125,7
@@
class Platal
return null;
}
return null;
}
- p
rotected
function near_hook()
+ p
ublic
function near_hook()
{
$hooks = array();
foreach ($this->__hooks as $hook=>$handler) {
{
$hooks = array();
foreach ($this->__hooks as $hook=>$handler) {
@@
-175,6
+175,15
@@
class Platal
return null;
}
return null;
}
+ protected function check_perms($perms)
+ {
+ if (!$perms) { // No perms, no check
+ return true;
+ }
+ $s_perms = S::v('perms');
+ return $s_perms->hasFlagCombination($perms);
+ }
+
private function call_hook(PlatalPage &$page)
{
$hook = $this->find_hook();
private function call_hook(PlatalPage &$page)
{
$hook = $this->find_hook();
@@
-196,8
+205,7
@@
class Platal
return PL_FORBIDDEN;
}
}
return PL_FORBIDDEN;
}
}
-
- if (!empty($hook['perms']) && $hook['perms'] != S::v('perms')) {
+ if ($hook['auth'] != AUTH_PUBLIC && !$this->check_perms($hook['perms'])) {
return PL_FORBIDDEN;
}
return PL_FORBIDDEN;
}
@@
-213,7
+221,7
@@
class Platal
return $val;
}
return $val;
}
- p
rotected
function force_login(PlatalPage &$page)
+ p
ublic
function force_login(PlatalPage &$page)
{
if (S::logged()) {
$page->changeTpl('core/password_prompt_logged.tpl');
{
if (S::logged()) {
$page->changeTpl('core/password_prompt_logged.tpl');