-
Notifications
You must be signed in to change notification settings - Fork 2
/
register.php
124 lines (105 loc) · 3.71 KB
/
register.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?php
/**
* register new user
*
* @copyright (c) 2004-15 bitweaver.org
*
* @package users
* @subpackage functions
*/
/**
* required setup
*/
// Avoid user hell
if( isset( $_REQUEST['tk'] ) ) {
unset( $_REQUEST['tk'] );
}
require_once( '../kernel/includes/setup_inc.php' );
require_once( KERNEL_PKG_CLASS_PATH.'BitBase.php' );
include_once( KERNEL_PKG_INCLUDE_PATH.'notification_lib.php' );
$gBitSystem->verifyFeature( 'users_allow_register' );
require_once( USERS_PKG_CLASS_PATH.'BitHybridAuthManager.php' );
BitHybridAuthManager::loadSingleton();
global $gBitHybridAuthManager;
$gBitSmarty->assign( 'hybridProviders', $gBitHybridAuthManager->getEnabledProviders() );
// Everything below here is needed for registration
require_once( USERS_PKG_CLASS_PATH.'BaseAuth.php' );
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' ) ) {
$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() ) {
bit_redirect( $gBitSystem->getDefaultPage() );
}
if( isset( $_REQUEST["register"] ) ) {
$registerHash = $_REQUEST;
include( USERS_PKG_INCLUDE_PATH.'register_inc.php' );
$gBitSmarty->assignByRef( 'reg', $registerHash );
} 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 = array();
$languages = $gBitLanguage->listLanguages();
$gBitSmarty->assignByRef( 'languages', $languages );
$gBitSmarty->assignByRef( 'gBitLanguage', $gBitLanguage );
// Get flags here
$flags = array();
$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 = array(
'is_public' => 'y',
'sort_mode' => array( 'is_default_asc', 'group_desc_asc' ),
);
$groupList = $gBitUser->getAllGroups( $listHash );
$gBitSmarty->assignByRef( 'groupList', $groupList );
// include preferences settings from other packages - these will be included as individual tabs
$packages = array();
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=array();
$p['template'] = $tpl_file;
$packages[] = $p;
}
}
}
$gBitSmarty->assignByRef('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' , array( 'display_mode' => 'display' ));
?>