/** * 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(); } }
<td style="width: 85px; padding: 5px; text-align: center;" class="fabriqmodules-config-col"> <?php if ($module->hasconfigs == 1 && $module->installed == 1) { ?> <button type="button" id="config-button-<?php echo $module->id; ?> " onclick="FabriqModules.configurationForm(<?php echo $module->id; ?> );">configure</button> <?php } else { ?> <?php } ?> </td> </tr> <?php } ?> </tbody> </table> <?php } else { FabriqModules::module('roles')->noPermission(); FabriqModules::render('roles', 'noPermission'); FabriqModules::has_permission(false); }
public function register() { if ($this->isLoggedIn()) { header("Location: " . PathMap::build_path('users', 'myAccount')); exit; } $configs = new ModuleConfigs(); $configs->getForModule('users'); if ($configs[$configs->configs['anyoneCanRegister']]->val == 0) { FabriqModules::module('roles')->noPermission(); FabriqModules::render('roles', 'noPermission'); FabriqModules::has_permission(false); } else { Fabriq::title('Register'); if (isset($_POST['submit'])) { $emailPattern = '/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\\@([a-z0-9])(([a-z0-9-])*([a-z0-9]))+' . '(\\.([a-z0-9])([-a-z0-9_-])?([a-z0-9])+)+$/i'; $displayPattern = '/([A-z0-9]){6,24}/'; $user = FabriqModules::new_model('users', 'Users'); $user->display = $_POST['display']; $user->email = $_POST['email']; $user->encpwd = $_POST['pwd']; if (!preg_match($displayPattern, $user->display)) { Messaging::message("Display name is invalid"); } if (!preg_match($emailPattern, $user->email)) { Messaging::message("e-mail address is invalid"); } if (strlen($user->encpwd) < 8 || $user->encpwd == $user->display || $user->encpwd == $user->email) { Messaging::message("Password is invalid"); } if (!Messaging::has_messages()) { $user->status = 1; $user->banned = 0; $user->forcepwdreset = 0; $user->id = $user->create(); $user->encpwd = crypt($user->encpwd, $user->id); $user->update(); global $_FAPP; $url = $_FAPP['url'] . PathMap::build_path('users', 'login'); $message = <<<EMAIL Hello {$user->display}, Your account has been created on the {$_FAPP['title']} website. You can log in by navigating to {$url} in your browser. Thanks, The {$_FAPP['title']} team NOTE: Do not reply to this message. It was automatically generated. EMAIL; mail($user->email, "Your account at {$_FAPP['title']}", $message, 'From: noreply@' . str_replace('http://', '', str_replace('https://', '', str_replace('www.', '', $_FAPP['url'])))); } FabriqModules::set_var('users', 'submitted', true); } else { FabriqModules::add_js('users', 'jquery.validate.min'); FabriqModules::add_js('users', 'users-register'); FabriqModules::add_css('users', 'users-admin'); } } }
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; }