Example #1
0
switch ($modx->event->name) {
    case 'OnHandleRequest':
        $actions = array('auth/login', 'auth/logout', 'remote/login', 'remote/logout');
        if (!empty($_REQUEST['action']) && in_array(urldecode($_REQUEST['action']), $actions)) {
            $params = array();
            foreach ($_REQUEST as $k => $v) {
                $params[$k] = urldecode($v);
            }
            if (!$modx->loadClass('office', MODX_CORE_PATH . 'components/office/model/office/', false, true)) {
                return;
            }
            list($controller, $action) = explode('/', $params['action']);
            $config = !empty($_SESSION['Office'][ucfirst($controller)][$modx->context->key]) ? $_SESSION['Office'][ucfirst($controller)][$modx->context->key] : array();
            $Office = new Office($modx, $config);
            $Office->loadAction($params['action'], array_merge($params, $config));
        } elseif ($modx->context->key != 'web' && !$modx->user->id) {
            if ($user = $modx->getAuthenticatedUser($modx->context->key)) {
                $modx->user = $user;
                $modx->getUser($modx->context->key);
            }
        }
        break;
    case 'OnWebAuthentication':
        $modx->event->_output = !empty($_SESSION['Office']['Auth']['verified']);
        break;
    case 'OnUserSave':
        if (!empty($user) && !empty($mode) && $mode == 'new') {
            if (!$user->get('remote_key')) {
                $user->set('remote_key', $user->get('id'));
                $user->save();