|
|
|
@ -7,13 +7,15 @@ |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
use \ChamiloSession as Session; |
|
|
|
|
use Symfony\Component\EventDispatcher\EventDispatcher, |
|
|
|
|
Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken, |
|
|
|
|
Symfony\Component\Security\Http\Event\InteractiveLoginEvent; |
|
|
|
|
|
|
|
|
|
$language_file = array('registration', 'admin'); |
|
|
|
|
|
|
|
|
|
if (!empty($_POST['language'])) { //quick hack to adapt the registration form result to the selected registration language |
|
|
|
|
$_GET['language'] = $_POST['language']; |
|
|
|
|
} |
|
|
|
|
require_once '../inc/global.inc.php'; |
|
|
|
|
|
|
|
|
|
if (api_get_setting('allow_registration') === 'false') { |
|
|
|
|
api_not_allowed(true); |
|
|
|
@ -79,14 +81,12 @@ if ($user_already_registered_show_terms == false) { |
|
|
|
|
if (api_get_setting('openid_authentication') == 'true') { |
|
|
|
|
$form->addElement('text', 'openid', get_lang('OpenIDURL'), array('size' => 40)); |
|
|
|
|
} |
|
|
|
|
// Enabled by Ivan Tcholakov, 06-APR-2009. CONFVAL_ASK_FOR_OFFICIAL_CODE = false by default. |
|
|
|
|
// OFFICIAL CODE |
|
|
|
|
//if (CONFVAL_ASK_FOR_OFFICIAL_CODE) { |
|
|
|
|
$form->addElement('text', 'official_code', get_lang('OfficialCode'), array('size' => 40)); |
|
|
|
|
if (api_get_setting('registration', 'officialcode') == 'true') { |
|
|
|
|
$form->addRule('official_code', get_lang('ThisFieldIsRequired'), 'required'); |
|
|
|
|
} |
|
|
|
|
//} |
|
|
|
|
|
|
|
|
|
$form->addElement('text', 'official_code', get_lang('OfficialCode'), array('size' => 40)); |
|
|
|
|
if (api_get_setting('registration', 'officialcode') == 'true') { |
|
|
|
|
$form->addRule('official_code', get_lang('ThisFieldIsRequired'), 'required'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// USERNAME |
|
|
|
|
if (api_get_setting('login_is_email') != 'true') { |
|
|
|
@ -120,13 +120,6 @@ if ($user_already_registered_show_terms == false) { |
|
|
|
|
$form->addRule('phone', get_lang('ThisFieldIsRequired'), 'required'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// PICTURE |
|
|
|
|
/*if (api_get_setting('profile', 'picture') == 'true') { |
|
|
|
|
$form->addElement('file', 'picture', get_lang('AddPicture')); |
|
|
|
|
$allowed_picture_types = array ('jpg', 'jpeg', 'png', 'gif'); |
|
|
|
|
$form->addRule('picture', get_lang('OnlyImagesAllowed').' ('.implode(',', $allowed_picture_types).')', 'filetype', $allowed_picture_types); |
|
|
|
|
}*/ |
|
|
|
|
|
|
|
|
|
// LANGUAGE |
|
|
|
|
if (api_get_setting('registration', 'language') == 'true') { |
|
|
|
|
$form->addElement('select_language', 'language', get_lang('Language')); |
|
|
|
@ -228,7 +221,7 @@ if (!CustomPages::enabled()) { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$tool_name = get_lang('Registration', null, (!empty($_POST['language'])?$_POST['language']:$_user['language'])); |
|
|
|
|
$tool_name = get_lang('Registration'); |
|
|
|
|
|
|
|
|
|
if (api_get_setting('allow_terms_conditions') == 'true' && $user_already_registered_show_terms) { |
|
|
|
|
$tool_name = get_lang('TermsAndConditions'); |
|
|
|
@ -329,13 +322,31 @@ if ($form->validate()) { |
|
|
|
|
Session::write('is_platformAdmin', $is_admin); |
|
|
|
|
} else { |
|
|
|
|
// Creates a new user |
|
|
|
|
$user_id = UserManager::create_user($values['firstname'], $values['lastname'], $values['status'], $values['email'], $values['username'], $values['pass1'], $values['official_code'], $values['language'], $values['phone'], $picture_uri, PLATFORM_AUTH_SOURCE, null, 1, 0, null, null, true); |
|
|
|
|
$user_id = UserManager::create_user( |
|
|
|
|
$values['firstname'], |
|
|
|
|
$values['lastname'], |
|
|
|
|
$values['status'], |
|
|
|
|
$values['email'], |
|
|
|
|
$values['username'], |
|
|
|
|
$values['pass1'], |
|
|
|
|
$values['official_code'], |
|
|
|
|
$values['language'], |
|
|
|
|
$values['phone'], |
|
|
|
|
null, |
|
|
|
|
PLATFORM_AUTH_SOURCE, |
|
|
|
|
null, |
|
|
|
|
1, |
|
|
|
|
0, |
|
|
|
|
null, |
|
|
|
|
null, |
|
|
|
|
true |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
// Register extra fields |
|
|
|
|
$extras = array(); |
|
|
|
|
foreach ($values as $key => $value) { |
|
|
|
|
if (substr($key, 0, 6) == 'extra_') { //an extra field |
|
|
|
|
$extras[substr($key,6)] = $value; |
|
|
|
|
$extras[substr($key, 6)] = $value; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -390,19 +401,19 @@ if ($form->validate()) { |
|
|
|
|
|
|
|
|
|
$emailsubject = get_lang('ApprovalForNewAccount',null,$values['language']).': '.$values['username']; |
|
|
|
|
$emailbody = get_lang('ApprovalForNewAccount',null,$values['language'])."\n"; |
|
|
|
|
$emailbody .= get_lang('UserName',null,$values['language']).': '.$values['username']."\n"; |
|
|
|
|
$emailbody .= get_lang('UserName',null, $values['language']).': '.$values['username']."\n"; |
|
|
|
|
|
|
|
|
|
if (api_is_western_name_order()) { |
|
|
|
|
$emailbody .= get_lang('FirstName',null,$values['language']).': '.$values['firstname']."\n"; |
|
|
|
|
$emailbody .= get_lang('LastName',null,$values['language']).': '.$values['lastname']."\n"; |
|
|
|
|
$emailbody .= get_lang('FirstName',null, $values['language']).': '.$values['firstname']."\n"; |
|
|
|
|
$emailbody .= get_lang('LastName',null, $values['language']).': '.$values['lastname']."\n"; |
|
|
|
|
} else { |
|
|
|
|
$emailbody .= get_lang('LastName',null,$values['language']).': '.$values['lastname']."\n"; |
|
|
|
|
$emailbody .= get_lang('FirstName',null,$values['language']).': '.$values['firstname']."\n"; |
|
|
|
|
$emailbody .= get_lang('LastName',null, $values['language']).': '.$values['lastname']."\n"; |
|
|
|
|
$emailbody .= get_lang('FirstName',null, $values['language']).': '.$values['firstname']."\n"; |
|
|
|
|
} |
|
|
|
|
$emailbody .= get_lang('Email',null,$values['language']).': '.$values['email']."\n"; |
|
|
|
|
$emailbody .= get_lang('Status',null,$values['language']).': '.$values['status']."\n\n"; |
|
|
|
|
$emailbody .= get_lang('Email',null, $values['language']).': '.$values['email']."\n"; |
|
|
|
|
$emailbody .= get_lang('Status',null, $values['language']).': '.$values['status']."\n\n"; |
|
|
|
|
$url_edit = Display::url(api_get_path(WEB_CODE_PATH).'admin/user_edit.php?user_id='.$user_id, api_get_path(WEB_CODE_PATH).'admin/user_edit.php?user_id='.$user_id); |
|
|
|
|
$emailbody .= get_lang('ManageUser',null,$values['language']).": $url_edit"; |
|
|
|
|
$emailbody .= get_lang('ManageUser',null, $values['language']).": $url_edit"; |
|
|
|
|
|
|
|
|
|
$admins = UserManager::get_all_administrators(); |
|
|
|
|
foreach ($admins as $admin_info) { |
|
|
|
@ -436,24 +447,20 @@ if ($form->validate()) { |
|
|
|
|
$values = api_get_user_info($user_id); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* SESSION REGISTERING */ |
|
|
|
|
/* @todo move this in a function */ |
|
|
|
|
$_user['firstName'] = stripslashes($values['firstname']); |
|
|
|
|
$_user['lastName'] = stripslashes($values['lastname']); |
|
|
|
|
$_user['mail'] = $values['email']; |
|
|
|
|
$_user['language'] = $values['language']; |
|
|
|
|
$_user['user_id'] = $user_id; |
|
|
|
|
$is_allowedCreateCourse = $values['status'] == 1; |
|
|
|
|
// Symfony way to login as a user |
|
|
|
|
$user = $app['orm.em']->getRepository('Entity\User')->find($user_id); |
|
|
|
|
|
|
|
|
|
// Here, "secured" is the name of the firewall in your security.yml |
|
|
|
|
$token = new UsernamePasswordToken($user, $user->getPassword(), 'secured', $user->getRoles()); |
|
|
|
|
$app['security']->setToken($token); |
|
|
|
|
$request = $app['request']; |
|
|
|
|
|
|
|
|
|
Session::write('_user', $_user); |
|
|
|
|
Session::write('is_allowedCreateCourse', $is_allowedCreateCourse); |
|
|
|
|
// Fire the login event |
|
|
|
|
// Logging the user in above the way we do it doesn't do this automatically |
|
|
|
|
$event = new InteractiveLoginEvent($request, $token); |
|
|
|
|
$app['dispatcher']->dispatch("security.interactive_login", $event); |
|
|
|
|
|
|
|
|
|
//stats |
|
|
|
|
event_login(); |
|
|
|
|
|
|
|
|
|
// last user login date is now |
|
|
|
|
$user_last_login_datetime = 0; // used as a unix timestamp it will correspond to : 1 1 1970 |
|
|
|
|
Session::write('user_last_login_datetime', $user_last_login_datetime); |
|
|
|
|
$recipient_name = api_get_person_name($values['firstname'], $values['lastname']); |
|
|
|
|
|
|
|
|
|
$text_after_registration = '<p>'.get_lang('Dear', null, $_user['language']).' '.stripslashes(Security::remove_XSS($recipient_name)).',<br /><br />'.get_lang('PersonalSettings',null,$_user['language']).".</p>"; |
|
|
|
@ -470,7 +477,7 @@ if ($form->validate()) { |
|
|
|
|
$text_after_registration.= '<p>'.get_lang('MailHasBeenSent',null,$_user['language']).'.</p>'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ($is_allowedCreateCourse) { |
|
|
|
|
if (api_is_allowed_to_create_course()) { |
|
|
|
|
$form_data['message'] = '<p>'. get_lang('NowGoCreateYourCourse',null,$_user['language']). "</p>"; |
|
|
|
|
$form_data['action'] = '../create_course/add_course.php'; |
|
|
|
|
|
|
|
|
|