Add termactivated user extra field validation see BT#11196

ofaj
Julio 10 years ago
parent 55b2121bed
commit e9553fde74
  1. 15
      main/admin/user_information.php
  2. 32
      main/auth/inscription.php
  3. 47
      main/inc/lib/legal.lib.php
  4. 1
      main/lang/french/trad4all.inc.php
  5. 15
      main/mySpace/myStudents.php
  6. 2
      src/Chamilo/CoreBundle/Entity/ExtraFieldValues.php

@ -110,21 +110,10 @@ if ($studentBossList) {
if (isset($_GET['action'])) {
switch ($_GET['action']) {
case 'send_legal':
$subject = get_lang('SendLegalSubject');
$content = sprintf(
get_lang('SendLegalDescriptionToUrlX'),
api_get_path(WEB_PATH)
);
MessageManager::send_message_simple($userId, $subject, $content);
Display::addFlash(Display::return_message(get_lang('Sent')));
LegalManager::sendLegal($userId);
break;
case 'delete_legal':
$extraFieldValue = new ExtraFieldValue('user');
$value = $extraFieldValue->get_values_by_handler_and_field_variable($userId, 'legal_accept');
$result = $extraFieldValue->delete($value['id']);
if ($result) {
Display::addFlash(Display::return_message(get_lang('Deleted')));
}
LegalManager::deleteLegal($userId);
break;
case 'unsubscribe':
$courseCode = empty($_GET['course_code']) ? '' : intval($_GET['course_code']);

@ -1,14 +1,15 @@
<?php
/* For licensing terms, see /license.txt */
use ChamiloSession as Session;
use Chamilo\CoreBundle\Entity\ExtraFieldValues;
/**
* This script displays a form for registering new users.
* @package chamilo.auth
*/
use ChamiloSession as Session;
//quick hack to adapt the registration form result to the selected registration language
// quick hack to adapt the registration form result to the selected registration language
if (!empty($_POST['language'])) {
$_GET['language'] = $_POST['language'];
}
@ -525,16 +526,31 @@ if (!CustomPages::enabled()) {
}
}
$blockButton = false;
// Terms and conditions
if (api_get_setting('allow_terms_conditions') == 'true') {
if (!api_is_platform_admin()) {
if (api_get_setting('show_terms_if_profile_completed') === 'true') {
$userInfo = api_get_user_info();
$userInfo = api_get_user_info(api_get_user_id(), false, false, true);
if ($userInfo) {
if ((int)$userInfo['profile_completed'] !== 1) {
api_not_allowed(true);
}
$termActivated = false;
$values = $userInfo['extra'];
foreach ($values as $value) {
/** @var \Chamilo\CoreBundle\Entity\ExtraFieldValues $value */
$value = $value['value'];
if ($value->getField()->getVariable() === 'termactivated') {
$termValue = $value->getValue();
$termActivated = !empty($termValue) && $termValue == 1;
}
}
if ($termActivated === false) {
$blockButton = true;
Display::addFlash(Display::return_message(get_lang('TermActivatedIsNeededDescription'), 'warning'));
}
}
}
}
@ -574,7 +590,11 @@ if (api_get_setting('allow_terms_conditions') == 'true') {
}
}
$form->addButtonCreate(get_lang('RegisterUser'));
if ($blockButton) {
$form->addButtonCreate(get_lang('RegisterUser'), 'submit', false, ['disabled' => 'disabled']);
} else {
$form->addButtonCreate(get_lang('RegisterUser'));
}
$course_code_redirect = Session::read('course_redirect');

@ -276,4 +276,51 @@ class LegalManager
return Database::result($rs,0,'type');
}
/**
* @param int $userId
*/
public static function sendLegal($userId)
{
$subject = get_lang('SendLegalSubject');
$content = sprintf(
get_lang('SendLegalDescriptionToUrlX'),
api_get_path(WEB_PATH)
);
MessageManager::send_message_simple($userId, $subject, $content);
Display::addFlash(Display::return_message(get_lang('Sent')));
$extraFieldValue = new ExtraFieldValue('user');
$value = $extraFieldValue->get_values_by_handler_and_field_variable($userId, 'termactivated');
if ($value === false) {
$extraFieldInfo = $extraFieldValue->getExtraField()->get_handler_field_info_by_field_variable('termactivated');
if ($extraFieldInfo) {
$newParams = array(
'item_id' => $userId,
'field_id' => $extraFieldInfo['id'],
'value' => 1,
'comment' => ''
);
$extraFieldValue->save($newParams);
}
}
}
/**
* @param int $userId
*/
public static function deleteLegal($userId)
{
$extraFieldValue = new ExtraFieldValue('user');
$value = $extraFieldValue->get_values_by_handler_and_field_variable($userId, 'legal_accept');
$result = $extraFieldValue->delete($value['id']);
if ($result) {
Display::addFlash(Display::return_message(get_lang('Deleted')));
}
$value = $extraFieldValue->get_values_by_handler_and_field_variable($userId, 'termactivated');
if ($value) {
$extraFieldValue->delete($value['id']);
}
}
}

@ -7659,4 +7659,5 @@ $ForumEndDate = "Date de fermeture";
$ForumStartDateComment = "Le forum sera publié à cette date";
$ForumEndDateComment = "Après cette date, le forum sera automatiquement fermé";
$ModeratedForum = "Forum modéré";
$TermActivatedIsNeededDescription = "Le contrat d'apprentissage n'a pas encore été validé par votre tuteur.";
?>

@ -170,21 +170,10 @@ if (isset($_GET['user_id']) && $_GET['user_id'] != "") {
switch ($_GET['action']) {
case 'send_legal':
$subject = get_lang('SendLegalSubject');
$content = sprintf(
get_lang('SendLegalDescriptionToUrlX'),
api_get_path(WEB_PATH)
);
MessageManager::send_message_simple($student_id, $subject, $content);
Display::addFlash(Display::return_message(get_lang('Sent')));
LegalManager::sendLegal($student_id);
break;
case 'delete_legal':
$extraFieldValue = new ExtraFieldValue('user');
$value = $extraFieldValue->get_values_by_handler_and_field_variable($student_id, 'legal_accept');
$result = $extraFieldValue->delete($value['id']);
if ($result) {
Display::addFlash(Display::return_message(get_lang('Deleted')));
}
LegalManager::deleteLegal($student_id);
break;
case 'reset_lp':
$lp_id = isset($_GET['lp_id']) ? intval($_GET['lp_id']) : '';

@ -79,7 +79,7 @@ class ExtraFieldValues extends BaseAttributeValue
}
/**
* @return mixed
* @return ExtraField
*/
public function getField()
{

Loading…
Cancel
Save