예제 #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
    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');
            }
        }
    }