Browse Source

Conditional login : Ask the user to complete his data at first login

Noel Dieschburg 13 years ago
parent
commit
6c29365b43

+ 9 - 0
main/auth/conditional_login/conditional_login.php

@@ -9,6 +9,10 @@ $dc_conditions = array();
 //  'conditional_function' => 'dc_check_phone_number',
 //  'url' => api_get_path(WEB_PATH).'main/auth/conditional_login/complete_phone_number.php'
 //));
+//array_push($dc_conditions, array(
+//  'conditional_function' => 'dc_check_first_login',
+//  'url' => api_get_path(WEB_PATH).'main/auth/conditional_login/first_login.php'
+//));
 require_once api_get_path(LIBRARY_PATH).'usermanager.lib.php';
 /*
   Please implements the functions of the $dc_conditions array. Each of these fucntion will take a user array (user_id, username, password (crypted), auth_sourcen, active, expiration_date)
@@ -20,4 +24,9 @@ function dc_check_phone_number($user){
   }
   return false;
 }
+
+function dc_check_first_login($user){
+  $uInfo = UserManager::get_user_info_by_id($user['user_id']);
+  return(($uInfo['extra']['already_logged_in'] === 'false'));
+}
 ?>

+ 1 - 0
main/inc/lib/usermanager.lib.php

@@ -162,6 +162,7 @@ class UserManager
 				$res = $res && self::update_extra_field_value($return, $fname, $fvalue);
 			}
 		}
+    self::update_extra_field_value($return, 'already_logged_in', 'false');
 		return $return;
 	}
 

+ 1 - 0
main/inc/local.inc.php

@@ -792,6 +792,7 @@ if (isset($uidReset) && $uidReset) {	// session data refresh requested
             ConditionalLogin::check_conditions($uData);
 
             api_session_register('_user');
+            UserManager::update_extra_field_value($_user['user_id'], 'already_logged_in', 'true');
         } else {
         	header('location:'.api_get_path(WEB_PATH));
             //exit("WARNING UNDEFINED UID !! ");

+ 1 - 0
main/install/db_main.sql

@@ -2324,6 +2324,7 @@ CREATE TABLE legal (
 );
 
 INSERT INTO user_field (field_type, field_variable, field_display_text, field_visible, field_changeable) values (1, 'legal_accept','Legal',0,0);
+INSERT INTO user_field (field_type, field_variable, field_display_text, field_visible, field_changeable) values (1, 'already_logged_in','Already logged in',0,0);
 
 --
 -- Table structure for certificate with gradebook

+ 1 - 0
main/install/migrate-db-1.8.6.2-1.8.7-pre.sql

@@ -136,6 +136,7 @@ CREATE TABLE `event_type_message` (`id` int(11) NOT NULL AUTO_INCREMENT, `event_
 CREATE TABLE `user_rel_event_type` (`id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `event_type_id` int(11) NOT NULL, PRIMARY KEY (`id`));
 INSERT INTO `event_type` VALUES (1, 'course_deleted','courseDeletedTitle','courseDeletedComment'),(2,'course_created','courseCreatedTitle','courseCreatedComment'),(3,'user_deleted','userDeletedTitle','userDeletedComment'),(4,'user_created','userCreatedTitle','userCreatedComment'), (5, 'session_created','sessionCreatedTitle','sessionCreatedComment'), (6,'session_deleted','sessionDeletedTitle','sessionDeletedComment'), (7,'session_category_created','sessionCategoryCreatedTitle','sessionCategoryCreatedComment'),(8,'session_category_deleted','sessionCategoryDeletedTitle','sessionCategoryDeletedComment'),(9,'settings_changed','settingsChangedTitle','settingsChangedComment'),(10,'user_subscribed','userSubscribedTitle','userSubscribedComment'), (11,'user_unsubscribed','userUnsubscribedTitle','userUnsubscribedComment');
 INSERT INTO `event_type_message` (`id`,`event_type_id`, `language_id`, `message`,`subject`) VALUES (1,4,10,'Bonjour, \r\n\r\nL\'utilisateur %username% (%firstname% %lastname%) a été créé.\r\nEmail : %mail%\r\n\r\nBien à vous.',''),(2,1,10,'Delete formation',''),(3,2,10,'Create formation',''),(4,3,10,'Bonjour, \r\n\r\nL\'utilisateur %username% (%firstname% %lastname%) a été supprimé.\r\n\r\nBien à vous.',''),(6,5,10,'Create session test',''),(7,6,10,'Delete session',''),(8,7,10,'Create category session',''),(9,8,10,'Delete category session',''),(10,9,10,'Change setting',''),(11,10,10,'Subscribe',''),(12,11,10,'Unsubscribe','');
+INSERT INTO user_field (field_type, field_variable, field_display_text, field_visible, field_changeable) values (1, 'already_logged_in','Already logged in',0,0);
 CREATE TABLE announcement_rel_group (group_id int NOT NULL, announcement_id int NOT NULL, PRIMARY KEY (group_id, announcement_id));
 
 INSERT INTO settings_current (variable, subkey, type, category, selected_value, title, comment, scope, subkeytext, access_url_changeable) VALUES  ('languagePriority1', NULL, 'radio', 'Languages', 'course_lang', 'LanguagePriority1Title', 'LanguagePriority1Comment', NULL, NULL, 0);