Browse Source

Adding user inactive date in resume session see BT#4871

Julio Montoya 12 years ago
parent
commit
7aa1975646

+ 7 - 3
main/admin/resume_session.php

@@ -263,10 +263,16 @@ if ($session['nbr_users'] == 0) {
             //$link_class = 'class="item_disabled"';
             $link_class = null;
             $user_status_in_platform = Display::return_icon('error.png', get_lang('Inactive'));
+            
             if ($user_info['active'] == 1 ) {
                 $user_status_in_platform = Display::return_icon('accept.png', get_lang('Active'));                
                 //$link_class = null;
             } else {
+                $status_info = get_latest_event_by_user_and_type($user['user_id'], LOG_USER_DEACTIVATED);
+                //var_dump($status_info);
+                if (!empty($status_info)) {
+                    $user_status_in_platform .= '<br />'.get_lang('UserInactived').' '.api_convert_and_format_date($status_info['default_date'], DATE_TIME_FORMAT_LONG);
+                }
                 $user_info['complete_name_with_username'] = Display::tag('del', $user_info['complete_name_with_username']);
             }
             
@@ -351,8 +357,6 @@ if ($session['nbr_users'] == 0) {
                     <td>'.$information.'</td>
                     <td>'.$origin.' '.$destination.'</td>
                     <td>'.$moved_date.'</td>
-                        
-
                     <td>
                         <a href="../mySpace/myStudents.php?student='.$user['user_id'].''.$orig_param.'">'.Display::return_icon('statistics.gif', get_lang('Reporting')).'</a>&nbsp;
                         '.$course_link.'
@@ -371,4 +375,4 @@ if ($session['nbr_users'] == 0) {
 ?>
 </table>
 <?php
-Display :: display_footer();
+Display :: display_footer();

+ 5 - 26
main/inc/ajax/user_manager.ajax.php

@@ -71,34 +71,13 @@ switch ($action) {
 		}
         break;
 	case 'active_user':
-		if (api_is_platform_admin() && api_global_admin_can_edit_admin($_GET['user_id'])) {
-            
+		if (api_is_platform_admin() && api_global_admin_can_edit_admin($_GET['user_id'])) {            
 			$user_id = intval($_GET['user_id']);
-			$status  = intval($_GET['status']);
-            
-			if (!empty($user_id)) {
-				$user_table = Database :: get_main_table(TABLE_MAIN_USER);
-				$sql = "UPDATE $user_table SET active='".$status."' WHERE user_id='".$user_id."'";
-				$result = Database::query($sql);
-                
-				//Send and email if account is active
-				if ($status == 1) {
-					$user_info = api_get_user_info($user_id);					
-					$recipient_name = api_get_person_name($user_info['firstname'], $user_info['lastname'], null, PERSON_NAME_EMAIL_ADDRESS);
-					$emailsubject = '['.api_get_setting('siteName').'] '.get_lang('YourReg').' '.api_get_setting('siteName');
-					$email_admin = api_get_setting('emailAdministrator');
-					$sender_name = api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'), null, PERSON_NAME_EMAIL_ADDRESS);
-					$emailbody=get_lang('Dear')." ".stripslashes($recipient_name).",\n\n";					
-					
-					$emailbody.=sprintf(get_lang('YourAccountOnXHasJustBeenApprovedByOneOfOurAdministrators'), api_get_setting('siteName'))."\n";
-					$emailbody.=sprintf(get_lang('YouCanNowLoginAtXUsingTheLoginAndThePasswordYouHaveProvided'), api_get_path(WEB_PATH)).",\n\n";
-					$emailbody.=get_lang('HaveFun')."\n\n";
-					//$emailbody.=get_lang('Problem'). "\n\n". get_lang('Formula');
-					$emailbody.= api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'))."\n". get_lang('Manager'). " ".api_get_setting('siteName')."\nT. ".api_get_setting('administratorTelephone')."\n" .get_lang('Email') ." : ".api_get_setting('emailAdministrator');
-					$result = api_mail_html($recipient_name, $user_info['mail'], $emailsubject, $emailbody, $sender_name, $email_admin);					
-				}
+			$status  = intval($_GET['status']);            
+			if (!empty($user_id)) {                
+                UserManager::change_active_state($user_id, $status, true);
                 echo $status;
-            }				
+            }
 		} else {
 			echo '-1';
 		}

+ 28 - 1
main/inc/lib/events.lib.inc.php

@@ -680,10 +680,33 @@ function get_event_users($event_name) {
     //For tests
     //$sql = 'SELECT user.user_id,  user.firstname, user.lastname FROM '.Database::get_main_table(TABLE_MAIN_USER);
         
-    $user_list = Database::store_result(Database::query($sql), 'ASSOC');    
+    $user_list = Database::store_result(Database::query($sql), 'ASSOC');
     return json_encode($user_list);	
 }
 
+function get_events_by_user_and_type($user_id, $event_type) {
+    global $TABLETRACK_DEFAULT;
+    $user_id = intval($user_id);
+    $event_type = Database::escape_string($event_type);
+    
+    $sql = "SELECT * FROM $TABLETRACK_DEFAULT 
+            WHERE default_value_type = 'user_id' AND 
+                  default_value = $user_id AND
+                  default_event_type = '$event_type'
+            ORDER BY default_date ";
+    $result = Database::query($sql);
+    if ($result) {
+        return Database::store_result($result, 'ASSOC');
+    }
+    return false;
+}
+function get_latest_event_by_user_and_type($user_id, $event_type) {
+    $result = get_events_by_user_and_type($user_id, $event_type);
+    if ($result && !empty($result)) {
+        return $result[0];
+    }
+}
+
 /**
  * Save the new message for one event and for one language
  *
@@ -1414,6 +1437,8 @@ function event_send_mail($event_name, $params) {
     EventsMail::send_mail($event_name, $params);
 }
 
+
+
 /**
  * Internal function checking if the mail was already sent from that user to that user
  * @param string $event_name
@@ -1468,6 +1493,8 @@ function portal_homepage_edited_event_send_mail_filter_func(&$values) {
     return $res;
 }
 
+
+
 /**
  * 
  */

+ 2 - 2
main/inc/lib/main_api.lib.php

@@ -134,7 +134,7 @@ define('LDAP_AUTH_SOURCE', 'extldap');
 // CONSTANT defining the default HotPotatoes files directory
 define('DIR_HOTPOTATOES','/HotPotatoes_files');
 
-// event logs types
+// Event logs types
 define('LOG_COURSE_DELETE',                     'course_deleted');
 define('LOG_COURSE_CREATE',                     'course_created');
 define('LOG_USER_CREATE',                       'user_created');
@@ -157,7 +157,7 @@ define('LOG_PROMOTION_DELETE',                  'promotion_deleted');
 define('LOG_CAREER_CREATE',                     'career_created');
 define('LOG_CAREER_DELETE',                     'career_deleted');
 
-// event logs data types
+// Event logs data types
 define('LOG_COURSE_CODE',                       'course_code');
 define('LOG_USER_ID',                           'user_id');
 define('LOG_USER_OBJECT',                       'user_object');

+ 20 - 3
main/inc/lib/usermanager.lib.php

@@ -569,7 +569,7 @@ class UserManager {
 	 * @param int user_id
 	 * @param int Enable or disable
 	 */
-	private static function change_active_state($user_id, $active) {		
+	public static function change_active_state($user_id, $active, $send_email_if_activated = false) {		
         $user_id = intval($user_id);
         $active = intval($active);
 		$table_user = Database :: get_main_table(TABLE_MAIN_USER);
@@ -579,11 +579,28 @@ class UserManager {
         
         $log_event = LOG_USER_DEACTIVATED;
         if ($active == 1) {
-            $log_event = LOG_USER_ACTIVATED;    
+            $log_event = LOG_USER_ACTIVATED;
+            
+            if ($send_email_if_activated) {                
+                $user_info = api_get_user_info($user_id);					
+                $recipient_name = api_get_person_name($user_info['firstname'], $user_info['lastname'], null, PERSON_NAME_EMAIL_ADDRESS);
+                $emailsubject = '['.api_get_setting('siteName').'] '.get_lang('YourReg').' '.api_get_setting('siteName');                
+                //$sender_name = api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'), null, PERSON_NAME_EMAIL_ADDRESS);
+                $emailbody=get_lang('Dear')." ".stripslashes($recipient_name).",\n\n";
+                $emailbody.=sprintf(get_lang('YourAccountOnXHasJustBeenApprovedByOneOfOurAdministrators'), api_get_setting('siteName'))."\n";
+                $emailbody.=sprintf(get_lang('YouCanNowLoginAtXUsingTheLoginAndThePasswordYouHaveProvided'), api_get_path(WEB_PATH)).",\n\n";
+                $emailbody.=get_lang('HaveFun')."\n\n";
+                $emailbody.=get_lang('Problem'). "\n\n". get_lang('Formula');
+                $emailbody.= api_get_person_name(api_get_setting('administratorName'), api_get_setting('administratorSurname'))."\n". get_lang('Manager'). " ".api_get_setting('siteName')."\nT. ".api_get_setting('administratorTelephone')."\n" .get_lang('Email') ." : ".api_get_setting('emailAdministrator');
+                
+                MessageManager::send_message_simple($user_id, $emailsubject, $emailbody);
+                //$result = api_mail_html($recipient_name, $user_info['mail'], $emailsubject, $emailbody, $sender_name, $email_admin);                
+            }
         }
+        
         $user_info = api_get_user_info($user_id);
         event_system($log_event, LOG_USER_ID, $user_id, api_get_utc_datetime(), api_get_user_id());
-        event_system($log_event, LOG_USER_OBJECT, $user_info, api_get_utc_datetime(), api_get_user_id());		
+        event_system($log_event, LOG_USER_OBJECT, $user_info, api_get_utc_datetime(), api_get_user_id());	
 	}
 
 	/**