/**
  * @url POST import
  */
 public function post()
 {
     try {
         $session = Session::singleton();
         $allowedRoles = (array) Config::get('allowedRolesForExcelImport', 'excelImport');
         if (Config::get('loginEnabled') && !is_null($allowedRoles)) {
             $ok = false;
             $sessionRoles = Role::getAllSessionRoles();
             foreach ($sessionRoles as $role) {
                 if (in_array($role->label, $allowedRoles)) {
                     $ok = true;
                 }
             }
             if (!$ok) {
                 throw new Exception("You do not have access to import excel files", 401);
             }
         }
         if (is_uploaded_file($_FILES['file']['tmp_name'])) {
             // Parse:
             $parser = new ImportExcel($_FILES['file']['tmp_name']);
             $result = $parser->ParseFile();
             unlink($_FILES['file']['tmp_name']);
         } else {
             Notifications::addError('No file uploaded');
         }
         $result = array('notifications' => $result, 'files' => $_FILES);
         return $result;
     } catch (Exception $e) {
         throw new RestException($e->getCode(), $e->getMessage());
     }
 }
Esempio n. 2
0
 public function setRole($roleId = null)
 {
     $roles = Config::get('loginEnabled') ? Role::getAllSessionRoles() : Role::getAllRoleObjects();
     if (empty($roles) || $roleId == 0) {
         $this->role = new Role(0);
     } elseif (is_null($roleId)) {
         $this->role = current($roles);
     } elseif (isset($roleId)) {
         if (!is_int($roleId)) {
             throw new Exception("roleId must be an integer", 400);
         }
         foreach ($roles as $role) {
             if ($role->id == $roleId) {
                 $this->role = $role;
             }
         }
         if (!isset($this->role)) {
             throw new Exception("You do not have access to the selected role", 401);
         }
     } else {
         throw new Exception("No role could be selected", 500);
     }
     if (Config::get('loginEnabled')) {
         $arr = array();
         foreach ($roles as $role) {
             $arr = array_merge($arr, $role->interfaces);
         }
         $this->accessibleInterfaces = array_unique($arr);
     }
     Notifications::addLog("Role " . $this->role->name . " selected", 'SESSION');
     return $this->role->id;
 }
 /**
  * @url GET run
  */
 public function run()
 {
     try {
         $session = Session::singleton();
         $db = Database::singleton();
         $allowedRoles = (array) Config::get('allowedRolesForRunFunction', 'execEngine');
         if (Config::get('loginEnabled') && !is_null($allowedRoles)) {
             $ok = false;
             $sessionRoles = Role::getAllSessionRoles();
             foreach ($sessionRoles as $role) {
                 if (in_array($role->label, $allowedRoles)) {
                     $ok = true;
                 }
             }
             if (!$ok) {
                 throw new Exception("You do not have access to run the exec engine", 401);
             }
         }
         $session->setRole();
         ExecEngine::runAllRules();
         $db->closeTransaction('Run completed', false, true, false);
         $result = array('notifications' => Notifications::getAll());
         return $result;
     } catch (Exception $e) {
         throw new RestException($e->getCode(), $e->getMessage());
     }
 }
Esempio n. 4
0
 /**
  * @url GET navBar
  * @param int $roleId
  */
 public function getNavBar($roleId = 0)
 {
     try {
         $session = Session::singleton();
         $session->setRole($roleId);
         // top level interfaces
         foreach ($session->role->getInterfacesForNavBar() as $ifc) {
             $top[] = array('id' => $ifc->id, 'label' => $ifc->label, 'link' => '/' . $ifc->id);
         }
         // new interfaces
         foreach ($session->role->getInterfacesToCreateAtom() as $ifc) {
             $new[] = array('id' => $ifc->id, 'label' => $ifc->label, 'link' => '/' . $ifc->id);
         }
         // roles
         $roles = array();
         $allRoles = Config::get('loginEnabled') ? Role::getAllSessionRoles() : Role::getAllRoleObjects();
         foreach ((array) $allRoles as $role) {
             $roles[] = array('id' => $role->id, 'label' => $role->label);
         }
         return array('top' => $top, 'new' => $new, 'refreshMenu' => $GLOBALS['navBar']['refreshMenu'], 'appMenu' => $GLOBALS['navBar']['appMenu'], 'roleMenu' => $GLOBALS['navBar']['roleMenu'], 'roles' => $roles, 'defaultSettings' => array('notifications' => Notifications::getDefaultSettings()), 'notifications' => Notifications::getAll(), 'session' => array('id' => $session->id, 'loggedIn' => Session::sessionUserLoggedIn(), 'sessionRoles' => $roles), 'sessionVars' => Session::getSessionVars());
     } catch (Exception $e) {
         throw new RestException($e->getCode(), $e->getMessage());
     }
 }