Пример #1
0
 /**
  * Actually removes the record IF there are no records referencing this user.
  * If records do reference it, then only marks it inactive.
  */
 function updateDatabase($myvalues)
 {
     $bHasReferences = UserInfo::userIsReferenced($this->m_nUID);
     $feedback = NULL;
     if ($bHasReferences) {
         $updated_dt = date("Y-m-d H:i", time());
         $nUpdated = db_update('raptor_user_profile')->fields(array('accountactive_yn' => 0, 'updated_dt' => $updated_dt))->condition('uid', $this->m_nUID, '=')->execute();
         if ($nUpdated !== 1) {
             error_log("Failed to edit user back to database!\n" . var_dump($myvalues));
             die("Failed to edit user back to database!\n" . var_dump($myvalues));
         }
         $feedback = 'Marked user as inactive instead of deleted because referenced by other records.';
     } else {
         //Delete all the child records first.
         $num_deleted = db_delete('raptor_user_modality')->condition('uid', $this->m_nUID, '=')->execute();
         $num_deleted = db_delete('raptor_user_anatomy')->condition('uid', $this->m_nUID, '=')->execute();
         $num_deleted = db_delete('raptor_user_group_membership')->condition('uid', $this->m_nUID, '=')->execute();
         //Now delete the profile.
         $num_deleted = db_delete('raptor_user_profile')->condition('uid', $this->m_nUID, '=')->execute();
         if ($this->m_nUID == 1) {
             //Do NOT delete this drupal user or will be very unhappy!
             error_log('Removed user 1 from RAPTOR but left it alone in Drupal users table.');
             $feedback = 'Removed user from RAPTOR system.';
         } else {
             //Now delete the Drupal user.
             $num_deleted = db_delete('users')->condition('uid', $this->m_nUID, '=')->execute();
             $feedback = 'Removed the ADMIN user from RAPTOR system.';
         }
     }
     drupal_set_message($feedback);
     return 1;
 }