Esempio n. 1
0
 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;
 }
Esempio n. 2
0
 public function getService($service, $module = '')
 {
     $controller = $this->getController();
     $service = Manager::getService(Manager::getApp(), $module == '' ? Manager::getModule() : $module, $service);
     $service->setData();
     return $service;
 }
Esempio n. 3
0
 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;
 }
Esempio n. 4
0
 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();
     }
 }
Esempio n. 5
0
 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);
 }