summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLester Caine <lester@lsces.co.uk>2026-05-18 09:05:06 +0100
committerLester Caine <lester@lsces.co.uk>2026-05-18 09:05:06 +0100
commit61f154b3396b25444c82f6694303fd90106e7940 (patch)
treef5c97e26014f127abb54200429b578cf3e0bff4c
parent9f1d04bb6588ef69ea0b62fa4ef7f9149cd2d372 (diff)
downloadusers-61f154b3396b25444c82f6694303fd90106e7940.tar.gz
users-61f154b3396b25444c82f6694303fd90106e7940.tar.bz2
users-61f154b3396b25444c82f6694303fd90106e7940.zip
Tidy register structure post stripping the groups biased code
-rwxr-xr-xhauth_register.php120
-rwxr-xr-xregister.php95
-rwxr-xr-xrole_register.php181
-rw-r--r--templates/register.tpl2
4 files changed, 199 insertions, 199 deletions
diff --git a/hauth_register.php b/hauth_register.php
new file mode 100755
index 0000000..2a41b8e
--- /dev/null
+++ b/hauth_register.php
@@ -0,0 +1,120 @@
+<?php
+
+use Bitweaver\KernelTools;
+/**
+ * register new user
+ *
+ * @copyright (c) 2004-15 bitweaver.org
+ *
+ * @package users
+ * @subpackage functions
+ */
+
+/**
+ * required setup
+ */
+// Avoid user hell
+use Bitweaver\HttpStatusCodes;
+use Bitweaver\Users\BitHybridAuthManager;
+
+if( isset( $_REQUEST['tk'] ) ) {
+ unset( $_REQUEST['tk'] );
+}
+require_once '../kernel/includes/setup_inc.php';
+
+include_once KERNEL_PKG_INCLUDE_PATH . 'notification_lib.php';
+
+$gBitSystem->verifyFeature( 'users_allow_register' );
+
+BitHybridAuthManager::loadSingleton();
+global $gBitHybridAuthManager;
+$gBitSmarty->assign( 'hybridProviders', $gBitHybridAuthManager->getEnabledProviders() );
+
+// Everything below here is needed for registration
+
+use Bitweaver\Users\BaseAuth;
+
+if( !empty( $_REQUEST['returnto'] ) ) {
+ $_SESSION['returnto'] = $_REQUEST['returnto'];
+} elseif( !empty( $_SERVER['HTTP_REFERER'] ) && !strpos( $_SERVER['HTTP_REFERER'], 'signin.php' ) && !strpos( $_SERVER['HTTP_REFERER'], 'hauth_register.php' ) ) {
+ $from = parse_url( $_SERVER['HTTP_REFERER'] );
+ if( !empty( $from['path'] ) && $from['host'] == $_SERVER['SERVER_NAME'] ) {
+ $_SESSION['loginfrom'] = $from['path'].'?'.( !empty( $from['query'] ) ? $from['query'] : '' );
+ }
+}
+
+if( $gBitUser->isRegistered() ) {
+ KernelTools::bit_redirect( $gBitSystem->getDefaultPage() );
+}
+if( isset( $_REQUEST["register"] ) ) {
+
+ $pRegisterHash = $_REQUEST;
+
+ include USERS_PKG_INCLUDE_PATH . 'register_inc.php';
+
+ $gBitSmarty->assign( 'reg', $pRegisterHash );
+
+} else {
+ if( $gBitSystem->isFeatureActive( 'custom_user_fields' ) ) {
+ $fields= explode( ',', $gBitSystem->getConfig( 'custom_user_fields' ) );
+ KernelTools::trim_array( $fields );
+ $gBitSmarty->assign('customFields', $fields);
+ }
+
+ for( $i=0; $i < BaseAuth::getAuthMethodCount(); $i++ ) {
+ $instance = BaseAuth::init( $i );
+ if( $instance && $instance->canManageAuth() ) {
+ $auth_reg_fields = $instance->getRegistrationFields();
+ foreach( array_keys( $auth_reg_fields ) as $auth_field ) {
+ $auth_reg_fields[$auth_field]['value'] = $auth_reg_fields[$auth_field]['default'];
+ }
+ $gBitSmarty->assign( 'auth_reg_fields', $auth_reg_fields );
+ break;
+ }
+ }
+}
+
+$languages = [];
+$languages = $gBitLanguage->listLanguages();
+$gBitSmarty->assign( 'languages', $languages );
+$gBitSmarty->assign( 'gBitLanguage', $gBitLanguage );
+
+// Get flags here
+$flags = [];
+$h = opendir( USERS_PKG_PATH.'icons/flags/' );
+while( $file = readdir( $h )) {
+ if( strstr( $file, ".gif" )) {
+ $parts = explode( '.', $file );
+ $flags[] = $parts[0];
+ }
+}
+closedir( $h );
+sort( $flags );
+$gBitSmarty->assign('flags', $flags);
+
+
+// include preferences settings from other packages - these will be included as individual tabs
+$packages = [];
+foreach( $gBitSystem->mPackages as $package ) {
+ if( $gBitSystem->isPackageActive( $package['name'] )) {
+ $php_file = $package['path'].'user_register_inc.php';
+ $tpl_file = $package['path'].'templates/user_register_inc.tpl';
+ if( file_exists( $tpl_file )) {
+ if( file_exists( $php_file )) {
+ require $php_file;
+ }
+ $p=[];
+ $p['template'] = $tpl_file;
+ $packages[] = $p;
+ }
+ }
+}
+$gBitSmarty->assign('packages',$packages );
+
+if( !empty( $_REQUEST['error'] ) ) {
+ $gBitSmarty->assign( 'error', $_REQUEST['error'] );
+ $gBitSystem->setHttpStatus( HttpStatusCodes::HTTP_UNAUTHORIZED );
+}
+
+$gBitSmarty->assign( 'metaKeywords', 'Login, Sign in, Registration, Register, Create new account' );
+$gBitSystem->display('bitpackage:users/register.tpl', 'Register' , [ 'display_mode' => 'display' ]); \ No newline at end of file
diff --git a/register.php b/register.php
index 2e7912e..d9220eb 100755
--- a/register.php
+++ b/register.php
@@ -1,8 +1,6 @@
<?php
-
-use Bitweaver\KernelTools;
/**
- * register new user
+ * register new user - role model
*
* @copyright (c) 2004-15 bitweaver.org
*
@@ -13,27 +11,27 @@ use Bitweaver\KernelTools;
/**
* required setup
*/
-// Avoid user hell
+namespace Bitweaver\Liberty;
+
use Bitweaver\HttpStatusCodes;
-use Bitweaver\Users\BitHybridAuthManager;
+use Bitweaver\Users\BaseAuth;
+use Bitweaver\Wiki\BitPage;
+use Bitweaver\KernelTools;
+// Avoid user hell
if( isset( $_REQUEST['tk'] ) ) {
unset( $_REQUEST['tk'] );
}
+
require_once '../kernel/includes/setup_inc.php';
-include_once KERNEL_PKG_INCLUDE_PATH . 'notification_lib.php';
+include_once KERNEL_PKG_INCLUDE_PATH.'notification_lib.php';
+// no longer supported, needs update - spiderr require_once( USERS_PKG_INCLUDE_PATH.'recaptchalib.php' );
$gBitSystem->verifyFeature( 'users_allow_register' );
-BitHybridAuthManager::loadSingleton();
-global $gBitHybridAuthManager;
-$gBitSmarty->assign( 'hybridProviders', $gBitHybridAuthManager->getEnabledProviders() );
-
// Everything below here is needed for registration
-use Bitweaver\Users\BaseAuth;
-
if( !empty( $_REQUEST['returnto'] ) ) {
$_SESSION['returnto'] = $_REQUEST['returnto'];
} elseif( !empty( $_SERVER['HTTP_REFERER'] ) && !strpos( $_SERVER['HTTP_REFERER'], 'signin.php' ) && !strpos( $_SERVER['HTTP_REFERER'], 'register.php' ) ) {
@@ -48,16 +46,73 @@ if( $gBitUser->isRegistered() ) {
}
if( isset( $_REQUEST["register"] ) ) {
- $pRegisterHash = $_REQUEST;
+ $reg = $_REQUEST;
- include USERS_PKG_INCLUDE_PATH . 'register_inc.php';
+ // Register the new user
+ $newUser = new RolePermUser();
+ if( $newUser->preRegisterVerify( $reg ) && $newUser->register( $reg ) ) {
+ $gBitUser->mUserId = $newUser->mUserId;
+
+ // add user to user-selected role
+ if ( !empty( $_REQUEST['role'] ) ) {
+ $roleInfo = $gBitUser->getRoleInfo( $_REQUEST['role'] );
+ if ( empty($roleInfo) || $roleInfo['is_public'] != 'y' ) {
+ $errors[] = "You can't use this role";
+ $gBitSmarty->assign( 'errors', $errors );
+ } else {
+ $userId = $newUser->getUserId();
+ $gBitUser->addUserToRole( $userId, $_REQUEST['role'] );
+ $gBitUser->storeUserDefaultRole( $userId, $_REQUEST['role'] );
+ }
+ }
+
+ // set the user to private if necessary. defaults to public
+ if(!empty($_REQUEST['users_information']) && $_REQUEST['users_information'] == 'private'){
+ $newUser->storePreference('users_information','private');
+ }
+
+ // requires validation by email
+ if( $gBitSystem->isFeatureActive( 'users_validate_user' ) ) {
+ $gBitSmarty->assign('msg',KernelTools::tra('You will receive an email with information to login for the first time into this site'));
+ $gBitSmarty->assign('showmsg','y');
+ } else {
+ if( !empty( $_SESSION['loginfrom'] ) ) {
+ unset( $_SESSION['loginfrom'] );
+ }
+ // registration login, fake the cookie so the session gets updated properly.
+ if( empty($_COOKIE[$gBitUser->getSiteCookieName()] ) ) {
+ $_COOKIE[$gBitUser->getSiteCookieName()] = session_id();
+ }
+ // login with email since login is not technically required in the form, as it can be auto generated during store
+ $afterRegDefault = $newUser->login( $reg['email'], $reg['password'], false, false );
+ $url = $gBitSystem->getConfig( 'after_reg_url' )?BIT_ROOT_URI.$gBitSystem->getConfig( 'after_reg_url' ):$afterRegDefault;
+ // return to referring page
+ if( !empty( $_SESSION['returnto'] ) ) {
+ $url = $_SESSION['returnto'];
+ // forward to role post-registration page
+ } elseif ( !empty( $_REQUEST['role'] ) && !empty( $roleInfo['after_registration_page'] ) ) {
+ if ( $newUser->verifyId( $roleInfo['after_registration_page'] ) ) {
+ $url = BIT_ROOT_URI."index.php?content_id=".$roleInfo['after_registration_page'];
+ } elseif( strpos( $roleInfo['after_registration_page'], '/' ) === false ) {
+ $url = BitPage::getDisplayUrlFromHash( $roleInfo['after_registration_page'] );
+ } else {
+ $url = $roleInfo['after_registration_page'];
+ }
+ }
+ header( 'Location: '.$url );
+ exit;
+ }
+ } else {
+ $gBitSystem->setHttpStatus( HttpStatusCodes::HTTP_BAD_REQUEST );
+ $gBitSmarty->assign( 'errors', $newUser->mErrors );
+ }
- $gBitSmarty->assign( 'reg', $pRegisterHash );
+ $gBitSmarty->assign( 'reg', $reg );
} else {
if( $gBitSystem->isFeatureActive( 'custom_user_fields' ) ) {
$fields= explode( ',', $gBitSystem->getConfig( 'custom_user_fields' ) );
- KernelTools::trim_array( $fields );
+ trim_array( $fields );
$gBitSmarty->assign('customFields', $fields);
}
@@ -92,6 +147,12 @@ closedir( $h );
sort( $flags );
$gBitSmarty->assign('flags', $flags);
+$listHash = [
+ 'is_public' => 'y',
+ 'sort_mode' => [ 'is_default_asc', 'role_desc_asc' ],
+];
+$roleList = $gBitUser->getAllRoles( $listHash );
+$gBitSmarty->assign( 'roleList', $roleList );
// include preferences settings from other packages - these will be included as individual tabs
$packages = [];
@@ -117,4 +178,4 @@ if( !empty( $_REQUEST['error'] ) ) {
}
$gBitSmarty->assign( 'metaKeywords', 'Login, Sign in, Registration, Register, Create new account' );
-$gBitSystem->display('bitpackage:users/register.tpl', 'Register' , [ 'display_mode' => 'display' ]); \ No newline at end of file
+$gBitSystem->display('bitpackage:users/role_register.tpl', 'Register' , [ 'display_mode' => 'display' ]);
diff --git a/role_register.php b/role_register.php
deleted file mode 100755
index ee0665e..0000000
--- a/role_register.php
+++ /dev/null
@@ -1,181 +0,0 @@
-<?php
-/**
- * register new user - role model
- *
- * @copyright (c) 2004-15 bitweaver.org
- *
- * @package users
- * @subpackage functions
- */
-
-/**
- * required setup
- */
-namespace Bitweaver\Liberty;
-
-use Bitweaver\HttpStatusCodes;
-use Bitweaver\Users\BaseAuth;
-use Bitweaver\Wiki\BitPage;
-use Bitweaver\KernelTools;
-
-// Avoid user hell
-if( isset( $_REQUEST['tk'] ) ) {
- unset( $_REQUEST['tk'] );
-}
-
-require_once '../kernel/includes/setup_inc.php';
-
-include_once KERNEL_PKG_INCLUDE_PATH.'notification_lib.php';
-// no longer supported, needs update - spiderr require_once( USERS_PKG_INCLUDE_PATH.'recaptchalib.php' );
-
-$gBitSystem->verifyFeature( 'users_allow_register' );
-
-// Everything below here is needed for registration
-
-if( !empty( $_REQUEST['returnto'] ) ) {
- $_SESSION['returnto'] = $_REQUEST['returnto'];
-} elseif( !empty( $_SERVER['HTTP_REFERER'] ) && !strpos( $_SERVER['HTTP_REFERER'], 'signin.php' ) && !strpos( $_SERVER['HTTP_REFERER'], 'role_register.php' ) ) {
- $from = parse_url( $_SERVER['HTTP_REFERER'] );
- if( !empty( $from['path'] ) && $from['host'] == $_SERVER['SERVER_NAME'] ) {
- $_SESSION['loginfrom'] = $from['path'].'?'.( !empty( $from['query'] ) ? $from['query'] : '' );
- }
-}
-
-if( $gBitUser->isRegistered() ) {
- KernelTools::bit_redirect( $gBitSystem->getDefaultPage() );
-}
-if( isset( $_REQUEST["register"] ) ) {
-
- $reg = $_REQUEST;
-
- // Register the new user
- $newUser = new RolePermUser();
- if( $newUser->preRegisterVerify( $reg ) && $newUser->register( $reg ) ) {
- $gBitUser->mUserId = $newUser->mUserId;
-
- // add user to user-selected role
- if ( !empty( $_REQUEST['role'] ) ) {
- $roleInfo = $gBitUser->getRoleInfo( $_REQUEST['role'] );
- if ( empty($roleInfo) || $roleInfo['is_public'] != 'y' ) {
- $errors[] = "You can't use this role";
- $gBitSmarty->assign( 'errors', $errors );
- } else {
- $userId = $newUser->getUserId();
- $gBitUser->addUserToRole( $userId, $_REQUEST['role'] );
- $gBitUser->storeUserDefaultRole( $userId, $_REQUEST['role'] );
- }
- }
-
- // set the user to private if necessary. defaults to public
- if(!empty($_REQUEST['users_information']) && $_REQUEST['users_information'] == 'private'){
- $newUser->storePreference('users_information','private');
- }
-
- // requires validation by email
- if( $gBitSystem->isFeatureActive( 'users_validate_user' ) ) {
- $gBitSmarty->assign('msg',KernelTools::tra('You will receive an email with information to login for the first time into this site'));
- $gBitSmarty->assign('showmsg','y');
- } else {
- if( !empty( $_SESSION['loginfrom'] ) ) {
- unset( $_SESSION['loginfrom'] );
- }
- // registration login, fake the cookie so the session gets updated properly.
- if( empty($_COOKIE[$gBitUser->getSiteCookieName()] ) ) {
- $_COOKIE[$gBitUser->getSiteCookieName()] = session_id();
- }
- // login with email since login is not technically required in the form, as it can be auto generated during store
- $afterRegDefault = $newUser->login( $reg['email'], $reg['password'], false, false );
- $url = $gBitSystem->getConfig( 'after_reg_url' )?BIT_ROOT_URI.$gBitSystem->getConfig( 'after_reg_url' ):$afterRegDefault;
- // return to referring page
- if( !empty( $_SESSION['returnto'] ) ) {
- $url = $_SESSION['returnto'];
- // forward to role post-registration page
- } elseif ( !empty( $_REQUEST['role'] ) && !empty( $roleInfo['after_registration_page'] ) ) {
- if ( $newUser->verifyId( $roleInfo['after_registration_page'] ) ) {
- $url = BIT_ROOT_URI."index.php?content_id=".$roleInfo['after_registration_page'];
- } elseif( strpos( $roleInfo['after_registration_page'], '/' ) === false ) {
- $url = BitPage::getDisplayUrlFromHash( $roleInfo['after_registration_page'] );
- } else {
- $url = $roleInfo['after_registration_page'];
- }
- }
- header( 'Location: '.$url );
- exit;
- }
- } else {
- $gBitSystem->setHttpStatus( HttpStatusCodes::HTTP_BAD_REQUEST );
- $gBitSmarty->assign( 'errors', $newUser->mErrors );
- }
-
- $gBitSmarty->assign( 'reg', $reg );
-
-} else {
- if( $gBitSystem->isFeatureActive( 'custom_user_fields' ) ) {
- $fields= explode( ',', $gBitSystem->getConfig( 'custom_user_fields' ) );
- trim_array( $fields );
- $gBitSmarty->assign('customFields', $fields);
- }
-
- for( $i=0; $i < BaseAuth::getAuthMethodCount(); $i++ ) {
- $instance = BaseAuth::init( $i );
- if( $instance && $instance->canManageAuth() ) {
- $auth_reg_fields = $instance->getRegistrationFields();
- foreach( array_keys( $auth_reg_fields ) as $auth_field ) {
- $auth_reg_fields[$auth_field]['value'] = $auth_reg_fields[$auth_field]['default'];
- }
- $gBitSmarty->assign( 'auth_reg_fields', $auth_reg_fields );
- break;
- }
- }
-}
-
-$languages = [];
-$languages = $gBitLanguage->listLanguages();
-$gBitSmarty->assign( 'languages', $languages );
-$gBitSmarty->assign( 'gBitLanguage', $gBitLanguage );
-
-// Get flags here
-$flags = [];
-$h = opendir( USERS_PKG_PATH.'icons/flags/' );
-while( $file = readdir( $h )) {
- if( strstr( $file, ".gif" )) {
- $parts = explode( '.', $file );
- $flags[] = $parts[0];
- }
-}
-closedir( $h );
-sort( $flags );
-$gBitSmarty->assign('flags', $flags);
-
-$listHash = [
- 'is_public' => 'y',
- 'sort_mode' => [ 'is_default_asc', 'role_desc_asc' ],
-];
-$roleList = $gBitUser->getAllRoles( $listHash );
-$gBitSmarty->assign( 'roleList', $roleList );
-
-// include preferences settings from other packages - these will be included as individual tabs
-$packages = [];
-foreach( $gBitSystem->mPackages as $package ) {
- if( $gBitSystem->isPackageActive( $package['name'] )) {
- $php_file = $package['path'].'user_register_inc.php';
- $tpl_file = $package['path'].'templates/user_register_inc.tpl';
- if( file_exists( $tpl_file )) {
- if( file_exists( $php_file )) {
- require $php_file;
- }
- $p=[];
- $p['template'] = $tpl_file;
- $packages[] = $p;
- }
- }
-}
-$gBitSmarty->assign('packages',$packages );
-
-if( !empty( $_REQUEST['error'] ) ) {
- $gBitSmarty->assign( 'error', $_REQUEST['error'] );
- $gBitSystem->setHttpStatus( HttpStatusCodes::HTTP_UNAUTHORIZED );
-}
-
-$gBitSmarty->assign( 'metaKeywords', 'Login, Sign in, Registration, Register, Create new account' );
-$gBitSystem->display('bitpackage:users/role_register.tpl', 'Register' , [ 'display_mode' => 'display' ]);
diff --git a/templates/register.tpl b/templates/register.tpl
index 13b724c..ca2ac82 100644
--- a/templates/register.tpl
+++ b/templates/register.tpl
@@ -1,6 +1,6 @@
{strip}
-{form class="col-md-6 col-xs-12 form-horizontal" action="`$smarty.const.USERS_PKG_URL`register.php" enctype="multipart/form-data" legend="Register as a new user" secure=$gBitSystem->isFeatureActive("site_https_login_required")}
+{form class="col-md-6 col-xs-12 form-horizontal" action="`$smarty.const.USERS_PKG_URL`hauth_register.php" enctype="multipart/form-data" legend="Register as a new user" secure=$gBitSystem->isFeatureActive("site_https_login_required")}
{foreach from=$reg.CUSTOM ?? [] item='custom' key='custom_name'}
<input type="hidden" name="CUSTOM[{$custom_name}]" value="{$custom}"/>
{/foreach}