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));
     }
 }
 /**
  * Registers a module with the modules database table
  * @param string $module
  */
 public static function register_module($module)
 {
     $mod = new Modules();
     $mod->getModuleByName($module);
     if ($mod->count() == 0) {
         // load the installer file
         $file = "modules/{$module}/{$module}.install.php";
         if (file_exists('sites/' . FabriqStack::site() . "/{$file}")) {
             require_once 'sites/' . FabriqStack::site() . "/{$file}";
         } else {
             if (file_exists($file)) {
                 require_once $file;
             } else {
                 throw new Exception("Module {$module} could not be found");
             }
         }
         eval('$installer = new ' . $module . '_install();');
         $info = $installer->info();
         $mod->module = $module;
         $mod->enabled = 0;
         $mod->installed = 0;
         $mod->hasconfigs = 0;
         $mod->description = $info['description'];
         $mod->versioninstalled = $info['version'];
         if (isset($info['dependsOn'])) {
             $mod->dependson = implode(',', $info['dependsOn']);
         }
         $mod->id = $mod->create();
         // register configs if available
         if (isset($info['configs'])) {
             foreach ($info['configs'] as $con) {
                 $config = new ModuleConfigs();
                 $config->module = $mod->id;
                 $config->var = $con;
                 if (isset($info['configDefaults']) && array_key_exists($con, $info['configDefaults'])) {
                     $config->val = $info['configDefaults'][$con];
                 } else {
                     $config->val = '';
                 }
                 $config->create();
             }
             $mod->hasconfigs = 1;
             $mod->update();
         }
     }
     return $mod->id;
 }
Example #3
0
    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 js()
 {
     $apikey = new ModuleConfigs();
     $apikey->getConfig('googleanalytics', 'apikey');
     FabriqModules::set_var('googleanalytics', 'apikey', $apikey->val);
 }