Changing session registering of the user during registration.

skala
Julio Montoya 12 years ago
parent d18560e28c
commit 175b334db5
  1. 93
      main/auth/inscription.php

@ -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';

Loading…
Cancel
Save