public function checkAccess($transaction, $access, $deny = false) { //mdump($transaction); //mdump('--------------------'); //mdump($access); $module = Manager::getModule(); $ok = false; if (!is_numeric($access)) { $access = $this->access[$access]; } if ($this->auth->isLogged()) { $login = $this->auth->getLogin(); // MLogin object $transaction = strtoupper($transaction); // Transaction name $isAdmin = $login->isAdmin(); // Is administrator? $rights = (int) $login->getRights($transaction); // user rights $rightsInAll = (int) $login->getRights('ALL'); // user rights in all transactions $ok = ($rights & $access) == $access || ($rightsInAll & $access) == $access || $isAdmin; if (!$ok && $deny) { $msg = _M('Acesso Negado') . "<br><br>\n" . "<center><big><i><font color=red>" . _M('Transação: ') . "{$transaction}</font></i></big></center><br><br>\n" . _M('Informe um login válido para acessar esta página.') . "<br>"; //$go = Manager::getCurrentURL(); //$error = MPrompt::error($msg, $go, $caption, ''); //Manager::prompt($error, $deny); throw new ESecurityException($msg); } } else { if ($deny) { $currentUrl = urlencode(Manager::getCurrentURL()); $module = Manager::getConf('login.module'); $url = Manager::getURL("{$module}/main.login", array('return_to' => $currentUrl)); Manager::getPage()->redirect($url); } } return $ok; }
public function getService($service, $module = '') { $controller = $this->getController(); $service = Manager::getService(Manager::getApp(), $module == '' ? Manager::getModule() : $module, $service); $service->setData(); return $service; }
public function buildURL($action = '', $parameters = array()) { //mtrace('buildURL = ' . $action); //mtrace($parameters); $app = Manager::getApp(); $module = Manager::getModule(); if ($action[0] == '@') { $url = Manager::getAppURL($app); $action = substr($action, 1); } elseif ($action[0] == '>') { $url = Manager::getAppURL($app); $action = substr($action, 1); } elseif ($action[0] == '#') { $url = Manager::getStaticURL(); $action = substr($action, 1); } else { $url = Manager::getAppURL($app); } //mtrace('url = '. $url); $path = ''; //mtrace("============== buildURL ============"); //mtrace('*action = ' . $action); if ($p = strpos($action, '/')) { $index = substr($action, 0, $p); $action = substr($action, $p + 1); } else { $index = $module != '' ? $module : $app; } // mtrace('index = ' . $index); // mtrace('action = ' . $action); //$action = str_replace('.','/', $action); $path = '/' . $action; // mtrace('*index = ' . $index); // mtrace('app = ' . $app); if ($index != $app) { $path = '/' . $index . $path; } //mtrace('*path = ' . $path); if (count($parameters)) { $query = http_build_query($parameters); $path .= (strpos($path, '?') === false ? '?' : '') . $query; } $url .= $path; //mtrace('url = ' . $url); //mtrace("============ end getURL ============"); return $url; }
public function dispatch($handler, $data) { //mdump("Handler:dispatch: [$handler]"); $this->theme = new MTheme(); $this->manager = Manager::getInstance(); $module = Manager::getModule(); //mdump("Handler:dispatch: [$module][$handler]"); $this->invokeHandler($module, $handler); if (!$this->getResult()) { $this->renderHandler(); } }
public function handlerService() { if ($this->controllerAction == '') { $this->controllerAction = $this->context->getService() . '.' . $this->context->getAction(); } mtrace('handler serviceAction=' . $this->controllerAction); $this->invokeService(Manager::getApp(), Manager::getModule(), $this->controllerAction); }