コード例 #1
0
 public function configure()
 {
     global $_FAPP;
     if (!$_FAPP['templating']) {
         global $configs;
     }
     $configs = new ModuleConfigs();
     $configs->getForModule('users');
     if ($_FAPP['templating']) {
         FabriqTemplates::set_var('module_configs', $configs);
     }
     if (isset($_POST['submit'])) {
         $configs[$configs->configs['anyoneCanRegister']]->val = $_POST['anyoneCanRegister'];
         $configs->update($configs->configs['anyoneCanRegister']);
         Fabriq::render('none');
         echo json_encode(array('success' => true));
     }
 }
コード例 #2
0
 /**
  * Process everything the queue
  */
 public static function processQueue()
 {
     if (!count(self::$queue)) {
         return false;
     }
     $next = FabriqStack::dequeue();
     while ($next->controller == '') {
         if (!count(self::$queue)) {
             return false;
         }
         FabriqStack::processQueue();
     }
     self::$processing = $next;
     switch ($next->type) {
         case 'module':
             $module =& FabriqModules::module($next->controller);
             call_user_func_array(array($module, $next->action), $next->extra);
             if (Fabriq::render() != 'none' && FabriqModules::has_permission() && !FabriqModules::stopMappedRender()) {
                 FabriqTemplates::renderToBody($next);
             }
             break;
         case 'controller':
         default:
             PathMap::controller($next->controller);
             PathMap::action($next->action);
             $file = "app/controllers/{$next->controller}.controller.php";
             if (file_exists('sites/' . FabriqStack::site() . "/{$file}")) {
                 require_once 'sites/' . FabriqStack::site() . "/{$file}";
             } else {
                 require_once $file;
             }
             $c = "{$next->controller}_controller";
             $controller = new $c();
             $a = str_replace('.', '_', $next->action);
             if (!$controller->hasMethod($a)) {
                 FabriqStack::error(404);
             }
             call_user_func(array($controller, $a));
             FabriqTemplates::renderToBody($next);
             break;
     }
     if (count(self::$queue)) {
         FabriqStack::processQueue();
     }
 }
コード例 #3
0
 public function getUserRoles()
 {
     Fabriq::render('none');
     $roles = array();
     if (isset($_SESSION[Fabriq::siteTitle()]['FABMOD_USERS_roles'])) {
         $roles = unserialize($_SESSION[Fabriq::siteTitle()]['FABMOD_USERS_roles']);
     }
     return $roles;
 }
コード例 #4
0
 public function requiresPermission($permission, $module)
 {
     if (isset($_SESSION[Fabriq::siteTitle()]['FABMOD_USERS_roles'])) {
         $roles = unserialize($_SESSION[Fabriq::siteTitle()]['FABMOD_USERS_roles']);
         if (count($roles) > 0) {
             global $db;
             $query = "SELECT COUNT( * ) AS num\nFROM fabmod_roles_moduleperms\nWHERE permission = (\n\tSELECT id\n\tFROM fabmods_perms\n\tWHERE permission = ?\n\tAND module = (\n\t\tSELECT id\n\t\tFROM fabmods_modules\n\t\tWHERE module = ?\n\t\tLIMIT 1\n\t)\n\tLIMIT 1\n)\nAND role\nIN (" . $db->qmarks(count($roles)) . ")";
             $data = $db->prepare_select($query, array('num'), array_merge(array($permission, $module), $roles));
             if ($data[0]['num'] > 0) {
                 return TRUE;
             }
             $this->noPermission();
             FabriqModules::render('roles', 'noPermission');
             FabriqModules::has_permission(false);
             return FALSE;
         }
         $this->noPermission();
         FabriqModules::render('roles', 'noPermission');
         FabriqModules::has_permission(false);
         return FALSE;
     }
     // user isn't logged in
     if (Fabriq::render() != 'none') {
         FabriqModules::module('users')->login();
         FabriqModules::render('users', 'login');
         FabriqModules::has_permission(false);
     }
     return FALSE;
 }
コード例 #5
0
 public function configure()
 {
     Fabriq::render('view');
     $module = new Modules(PathMap::arg(2));
     $install_file = "modules/{$module->module}/{$module->module}.install.php";
     if (file_exists('sites/' . FabriqStack::site() . "/{$install_file}")) {
         $install_file = 'sites/' . FabriqStack::site() . "/{$install_file}";
     } else {
         if (!file_exists($install_file)) {
             throw new Exception("Module {$module->module} install file could not be found");
         }
     }
     require_once $install_file;
     eval("\$installer = new {$module->module}_install();");
     $installer->configure();
     FabriqModules::set_var($this->name, 'module', $module);
 }