Example #1
0
function app_event_test_page($values)
{
    global $config;
    $m = function ($page) {
        $page->body->write("here2");
    };
    rea_app_controller::on("default_page_commit", $m);
    $files = rea_app::bundle();
    //lets create a bundle helper
    $page = rea_views::default_page();
    $page->set("title", "Testing Views");
    $page->body->write("this is the body<br>");
    $page->css->addfile($files->css->child("test_view1.css")->url);
    //add one file
    $page->header->write($files->css->all());
    //use all to add all the files in a folder
    $page->js->addfile($files->child("test_view1.js")->url);
    $page->js->write("console.log('hello');");
    //inline js
    //we could insert files like this
    //$page->body->insert($files->child("test_view1.html")->path);
    //rea_view::setViewsPath( REA_SELF_DIRECTORY );
    //$part = rea_template::create("nav_bar.part");
    $page->set("part_test", $part);
}
Example #2
0
function rea_app_model_run()
{
    global $page, $config;
    global $rea_app_route;
    global $auth_user, $rea_controller;
    $method = null;
    $page->name = $config->application['name'];
    $page->title = $config->application['name'];
    $page->uid = 'nkdfg';
    $values = array();
    if (function_exists('rea_ui_event_view_show')) {
        rea_app::registerForEvent('rea_view_show', 'rea_ui_event_view_show');
    }
    rea_app::registerForEvent('rea_view_show', 'rea_app_model_page_before_display');
    $rea_app_route = rea_app_route::loadRoute();
    $cfg_auth_actions = array('rea_login', 'rea_logout', 'rea_login_do', 'rea_login_ingest', 'ras_psr_start', 'ras_psr_show', 'ras_psr_do');
    $flg_is_auth_action = in_array($rea_app_route['action'], $cfg_auth_actions);
    if ($config->application['attributes']['opt_use_auth'] == 1 && !$config->application['attributes']['op_run_without_auth']) {
        //var_dump($config);
        if ($rea_app_route['action'] == 'rea_login_do' && !function_exists('app_event_rea_login_do')) {
            //handle it ourselves...
            rea_authorization::login_authorize($rea_app_route['values']);
            if (isset($_SESSION['REA_REENTRY_URL'])) {
                $url = $_SESSION['REA_REENTRY_URL'];
                unset($_SESSION['REA_REENTRY_URL']);
                rea_response::location($url);
                exit;
            }
        }
        if (!$flg_is_auth_action) {
            if (isset($config->application['attributes']['REA_REENTRY_URL'])) {
                $_SESSION['REA_REENTRY_URL'] = $config->application['attributes']['REA_REENTRY_URL'];
            } else {
                $_SESSION['REA_REENTRY_URL'] = REA_SELF_URL;
                //$config->application['attributes']['url'];
            }
        }
        if ($rea_app_route['action'] == 'rea_logout' && !function_exists('app_event_rea_logout')) {
            //handle it ourselves...
            rea_authorization::user_logout();
        }
        if (!$flg_is_auth_action) {
            /// REquire an authenticated session, reload session user
            $rea_controller->raiseEvent("auth_validate", array());
            if (!rea_authorization::user_validate()) {
                $url = rea_authorization::login_redirect();
                rea_response::location($url);
                exit;
            }
            if (isset($config->real_user)) {
                $config->alias_user = $config->real_user;
                if (isset($config->application['attributes']['authorization']['allow_subject_alias']) and $config->application['attributes']['authorization']['allow_subject_alias'] == 1 and isset($_SESSION['ras_alias'])) {
                    $alias_attributes = $config->real_user->getRoleAttribute('rea_sis_alias');
                    if (is_string($alias_attributes['appuid_allowed'])) {
                        $apps_allowed = array($alias_attributes['appuid_allowed']);
                    } else {
                        $apps_allowed = $alias_attributes['appuid_allowed']->getArray();
                    }
                    if ($apps_allowed[0] == '*' or in_array($config->application['uid'], $apps_allowed)) {
                        $u = ras::loadFromUID($_SESSION['ras_alias']);
                        $item = new ctrl_alert("Using alias for user: {$u->name_display} [{$u->email}] <a href='/" . strtolower(REA_LOCATIONID) . "/profile/scr_alias.php?a=remove'>Remove</a>", 'alert-success', false);
                        $page->write($item);
                        $config->alias_user = $u;
                        $config->alias_user->roles['rea_sis_alias'] = $config->real_user->roles['rea_sis_alias'];
                    }
                }
            }
            $rea_controller->raiseEvent('rea_app_model_user_available', array($config, $rea_app_route));
        }
        //rea_authorization::login_validate();
    }
    if (isset($config->application['attributes']['model_access'])) {
        $roles = '';
        if (isset($config->application['authorization']['roles']) && strlen($config->application['authorization']['roles']) > 0) {
            $roles = $config->application['authorization']['roles'];
        } elseif (isset($config->application['acl']) && strlen($config->application['acl']) > 0) {
            $roles = $config->application['acl'];
        }
        $ma = $config->application['attributes']['model_access'];
        $me = '';
        if (array_key_exists($rea_app_route['action'], $ma)) {
            $me = $ma[$rea_app_route['action']];
            if (!$config->alias_user->canAccess($me)) {
                $page->showError("Unable to continue", "You are not allowed to perform this operation. [ERR:APPMODELSEC01][" . htmlentities($rea_app_route['action']) . "]");
            }
        }
    }
    $rea_controller->raiseEvent('rea_app_model_app_start', array($config, $rea_app_route));
    //print "here1<br>";
    if (isset($_GET['a']) and $_GET['a'] == 'rea_logout') {
        unset($alias_check);
    } else {
        $alias_check = true;
    }
    if (function_exists('app_start')) {
        app_start($page, $rea_app_route['values']);
    }
    global $app_extended_view_helpers;
    if (count($app_extended_view_helpers) > 0) {
        foreach ($app_extended_view_helpers as $a) {
            $a = '' . $a . '_extended_view_start';
            if (function_exists($a)) {
                $a($page, $rea_app_route['values']);
            }
        }
    }
    $panel = '__';
    if (isset($_GET['rea_spawn_status'])) {
        $rea_app_route['method'] = 'get';
        $rea_app_route['action'] = 'spawn_' . $rea_app_route['values']['rea_spawn_status'];
    }
    if (isset($rea_app_route['values']['ui_form_persistant'])) {
        $panel = $rea_app_route['values']['ui_form_persistant'];
        $frm = new rea_values($rea_app_route['values']);
        $rea_app_route['values'] = $frm->load_persistant();
    }
    $fn = 'app_' . $rea_app_route['method'] . '_start';
    if (function_exists($fn)) {
        $data = $fn($page, $rea_app_route['values']);
    }
    $fn = 'app_event_' . $rea_app_route['action'];
    $pn = "process_{$panel}";
    if (function_exists($pn)) {
        $data = $pn($page, $rea_app_route['values']);
    } elseif (function_exists($fn)) {
        $data = $fn($page, $rea_app_route['values']);
    } elseif (strpos($rea_app_route['action'], 'spawn_') === 0) {
        $fn = 'app_event_' . $rea_app_route['action'];
        if (function_exists($fn)) {
            $fn($page, $rea_app_route['values']);
        } else {
            $fn = "rea_spawn_default_" . str_replace('spawn_', '', $rea_app_route['action']);
            if (function_exists($fn)) {
                $fn($page, $rea_app_route['values']);
            } else {
                $page->showError("Unable to continue", "Invalid request to application model. [2]");
            }
        }
    } else {
        $fn = "app_event_unhandled";
        if (function_exists($fn)) {
            $fn($page, $rea_app_route['values']);
        } else {
            $page->showError("Unable to continue", "Invalid request to application model." . $rea_app_route['action']);
        }
    }
    $fn = 'app_' . $rea_app_route['method'] . '_end';
    if (function_exists($fn)) {
        $data = $fn($page, $rea_app_route['values']);
    }
    if (function_exists('app_end')) {
        app_end($page, $rea_app_route['values']);
    }
    rea_app_model_show();
}
Example #3
0
 public static function location($url)
 {
     header("Location: {$url}");
     rea_app::terminate();
 }
Example #4
0
    define('REA_RUNMODE_PORTAL', false);
}
$location = isset($config->application['location_id']) ? $config->application['location_id'] : '*';
$u = rea_sp_rel2dr(REA_BASE_PATH, $location);
if (substr($u, -1, 1) != '/') {
    $u .= '/';
}
define('REA_BASE_URL', $u);
define('REA_ENGINE_URL', rea_sp_rel2dr(cfgEngineFolder, $location));
define('REA_SELF_URL', $config->application['attributes']['action']);
rea_app::loadStorageConnections();
$rea_controller->raiseEvent("rea_storage_configure");
$rea_controller->raiseEvent('rea_app_config_ready', array($config));
storage::dao_initializeEntries();
if (REA_RUNMODE_SERVICE) {
    rea_app::lock();
}
//print "<b>DONE</b><br>";
function rea_sp_rel2dr($f, $location = '*')
{
    ///N:Converts an absolute path to relative assuming is under document root
    $s = str_replace($_SERVER['DOCUMENT_ROOT'], '', $f);
    if (substr($s, 0, 1) != '/') {
        $s = '/' . $s;
    }
    if (!is_null($location) and $location != '*' and strlen($location) > 0) {
        $s = '/' . strtolower($location) . $s;
    }
    return $s;
}
function rea_sp_register_capability($name)
Example #5
0
 public static function location($url)
 {
     header("Location: {$url}");
     rea_app::endapp();
 }