Esempio n. 1
0
 public static function get()
 {
     $value = \SYSTEM\SECURITY\Security::load(self::SESSION_KEY);
     if ($value == NULL) {
         return \SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_LANG);
     }
     return $value;
 }
 public static function CALL(\Exception $E, $thrown)
 {
     try {
         if (\property_exists(get_class($E), 'logged') && $E->logged) {
             return false;
         }
         //alrdy logged(this prevents proper thrown value for every system exception)
         $result = \SYSTEM\SQL\SYS_LOG_INSERT::QI(array(get_class($E), $E->getMessage(), $E->getCode(), $E->getFile(), $E->getLine(), $E->getTraceAsString(), getenv('REMOTE_ADDR'), round(microtime(true) - \SYSTEM\time::getStartTime(), 5), $_SERVER["SERVER_NAME"], $_SERVER["SERVER_PORT"], $_SERVER['REQUEST_URI'], serialize($_POST), array_key_exists('HTTP_REFERER', $_SERVER) ? $_SERVER['HTTP_REFERER'] : null, array_key_exists('HTTP_USER_AGENT', $_SERVER) ? $_SERVER['HTTP_USER_AGENT'] : null, ($user = \SYSTEM\SECURITY\Security::getUser()) ? $user->id : null, $thrown ? 1 : 0));
         if (\property_exists(get_class($E), 'logged')) {
             $E->logged = true;
         }
         //we just did log
     } catch (\Exception $E) {
         //Dump the Error
         echo \SYSTEM\LOG\JsonResult::toString((array) $E);
         return false;
     }
     //Error -> Ignore
     return false;
     //We just log and do not handle the error!
 }
Esempio n. 3
0
 public function html()
 {
     //register docu here, we require path so system must be started
     \SYSTEM\DOCU\docu::register(array('id' => 'system', 'inpath' => new \SYSTEM\PSYSTEM(), 'outpath' => new \SYSTEM\PSYSTEM('docu/system/'), 'inpath_md' => new \SYSTEM\PSYSTEM('docu/system/structure.xml'), 'outpath_md' => new \SYSTEM\PSYSTEM('docu/system_wiki/'), 'cachepath' => new \SYSTEM\PSYSTEM('docu/system/cache/'), 'ignore' => array('lib/animate/*', 'lib/bootstrap/*', 'lib/bootstrap_growl/*', 'lib/git/*', 'lib/jqbootstrapvalidation/*', 'lib/jquery/*', 'lib/lettering/*', 'lib/markdown/*', 'lib/minify/*', 'lib/phpdocumentor/*', 'lib/scssphp/*', 'lib/tablesorter/*', 'lib/texttilate/*', 'lib/tinymce/*'), 'sourcecode' => true, 'parseprivate' => false, 'title' => 'SYSTEM - PHP Framework'));
     \SYSTEM\SECURITY\Security::isLoggedIn();
     // refresh session
     //Direct JSON Input
     $pg = json_decode(file_get_contents("php://input"), true);
     if (!$pg) {
         $pg = array_merge($_POST, $_GET);
     }
     if (isset($pg[self::SAI_MOD_POSTFIELD])) {
         $classname = \str_replace('.', '\\', $pg[self::SAI_MOD_POSTFIELD]);
         $pg[self::SAI_MOD_POSTFIELD] = \str_replace('.', '_', $pg[self::SAI_MOD_POSTFIELD]);
         $mods = \SYSTEM\SAI\sai::getAllModules();
         if ($classname && \array_search($classname, $mods) !== false && (\call_user_func(array($classname, 'right_public')) || \call_user_func(array($classname, 'right_right')))) {
             return \SYSTEM\API\api::run('\\SYSTEM\\API\\verify', $classname, $pg, 42, true, false);
         } else {
             return '<meta http-equiv="refresh" content="0; url=./sai.php">You are no longer logged in. Page reload in 5sec...';
         }
     } else {
         return \SYSTEM\API\api::run('\\SYSTEM\\API\\verify', '\\SYSTEM\\SAI\\SaiModule', $pg, 42, false, true);
     }
 }
Esempio n. 4
0
 public static function right_right()
 {
     return \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);
 }
Esempio n. 5
0
 public static function call_account_action_create($username, $password_sha, $email, $locale)
 {
     return \SYSTEM\SECURITY\Security::create($username, $password_sha, $email, $locale);
 }
Esempio n. 6
0
 public static function save($id, $new_id, $lang, $tags, $text)
 {
     if ($new_id == self::NEW_ENTRY) {
         return false;
     }
     //Insert
     if (!\SYSTEM\SQL\SYS_TEXT_SAVE::QI(array($id, $lang, $text, \SYSTEM\SECURITY\Security::getUser()->id, \SYSTEM\SECURITY\Security::getUser()->id))) {
         return false;
     }
     //delete all tags
     \SYSTEM\SQL\SYS_TEXT_DELETE_TAGS::QI(array($id));
     //Insert tags
     foreach ($tags as $tag) {
         if ($tag) {
             \SYSTEM\SQL\SYS_TEXT_SAVE_TAG::QI(array($id, $tag));
         }
     }
     //Rename
     \SYSTEM\SQL\SYS_TEXT_RENAME::QI(array($new_id, $id));
     \SYSTEM\SQL\SYS_TEXT_RENAME_TAGS::QI(array($new_id, $id));
     return true;
 }
Esempio n. 7
0
 public static function exception(\Exception $E, $thrown, $type = \SYSTEM\SQL\system_todo::FIELD_TYPE_EXCEPTION)
 {
     try {
         if (\property_exists(get_class($E), 'todo_logged') && $E->todo_logged) {
             return false;
         }
         //alrdy logged(this prevents proper thrown value for every system exception)
         \SYSTEM\SQL\SYS_SAIMOD_TODO_EXCEPTION_INSERT::Q1(array(get_class($E), $E->getMessage(), $E->getCode(), $E->getFile(), $E->getLine(), $E->getTraceAsString(), getenv('REMOTE_ADDR'), round(microtime(true) - \SYSTEM\time::getStartTime(), 5), date('Y-m-d H:i:s', microtime(true)), $_SERVER["SERVER_NAME"], $_SERVER["SERVER_PORT"], $_SERVER['REQUEST_URI'], serialize($_POST), array_key_exists('HTTP_REFERER', $_SERVER) ? $_SERVER['HTTP_REFERER'] : null, array_key_exists('HTTP_USER_AGENT', $_SERVER) ? $_SERVER['HTTP_USER_AGENT'] : null, ($user = \SYSTEM\SECURITY\Security::getUser()) ? $user->id : null, $thrown ? 1 : 0, $E->getMessage(), $type));
         if (\property_exists(get_class($E), 'logged')) {
             $E->todo_logged = true;
         }
         //we just did log
     } catch (\Exception $E) {
         return false;
     }
     //Error -> Ignore
     return false;
     //We just log and do not handle the error!
 }
Esempio n. 8
0
 public static function get($group, $state, $returnasjson = true)
 {
     //seperate state from vars
     $state_vars = \explode(';', $state);
     //parse substates
     $state_all = \explode('(', $state_vars[0]);
     $state_name = $state_all[0];
     $substate = substr($state_vars[0], strlen($state_name));
     $substate = self::parse_substate($substate);
     //vars
     $vars = array();
     for ($i = 1; $i < count($state_vars); $i++) {
         $var = \explode('.', $state_vars[$i]);
         $vars[$var[0]] = $var[1];
     }
     $result = array();
     $res = \SYSTEM\SQL\SYS_PAGE_GROUP::QQ(array($group, $state_name));
     while ($row = $res->next()) {
         if (!self::is_loaded($row, $substate, $state_name, $row['parent_id'])) {
             continue;
         }
         if ($row['login'] == 1 && !\SYSTEM\SECURITY\Security::isLoggedIn() || $row['login'] == 2 && \SYSTEM\SECURITY\Security::isLoggedIn()) {
             continue;
         }
         $row['url'] = \SYSTEM\PAGE\replace::replace($row['url'], $vars);
         $row['url'] = \SYSTEM\PAGE\replace::clean($row['url']);
         //clean url of empty variables
         //$row['url'] = preg_replace('/&.*?=(&|$)/', '&', $row['url']);
         $row['url'] = preg_replace('/[^=&]+=(&|$)/', '&', $row['url']);
         $row['url'] = preg_replace('/&&$/', '', $row['url']);
         $row['css'] = $row['js'] = array();
         if (\class_exists($row['php_class']) && \method_exists($row['php_class'], 'css') && \is_callable($row['php_class'] . '::css')) {
             $row['css'] = array_merge($row['css'], \call_user_func($row['php_class'] . '::css'));
         }
         $row['css'] = count($row['css']) > 0 ? array(\SYSTEM\CACHE\cache_css::url($row['css'])) : array();
         if (\class_exists($row['php_class']) && \method_exists($row['php_class'], 'scss') && \is_callable($row['php_class'] . '::scss')) {
             $scss = \call_user_func($row['php_class'] . '::scss');
             foreach ($scss as $s) {
                 $row['css'][] = \SYSTEM\CACHE\cache_scss::url($s);
             }
         }
         if (\class_exists($row['php_class']) && \method_exists($row['php_class'], 'js') && \is_callable($row['php_class'] . '::js')) {
             $row['js'] = array_merge($row['js'], \call_user_func($row['php_class'] . '::js'));
         }
         $row['js'] = count($row['js']) > 0 ? array(\SYSTEM\CACHE\cache_js::url($row['js'])) : array();
         unset($row['php_class']);
         $skip = false;
         for ($i = 0; $i < count($result); $i++) {
             if ($result[$i]['div'] == $row['div']) {
                 $skip = true;
                 if ($row['type'] == 1) {
                     $result[$i] = $row;
                 }
                 break;
             }
         }
         if (!$skip) {
             $result[] = $row;
         }
     }
     return $returnasjson ? \SYSTEM\LOG\JsonResult::toString($result) : $result;
 }
Esempio n. 9
0
 public static function html_li_menu()
 {
     return '<li class="sai_divider_left"><a id="menu_login" data-toggle="tooltip" data-placement="bottom" title="${sai_menu_login}" href="#!login">' . (\SYSTEM\SECURITY\Security::isLoggedIn() ? '<span class="glyphicon glyphicon-log-out" aria-hidden="true"></span>' : '<span class="glyphicon glyphicon-log-in" aria-hidden="true"></span>') . '</a></li>';
 }