full working version

This commit is contained in:
rnsrk 2023-11-15 01:53:03 +01:00
parent 2178db78f5
commit 308e21941a
22 changed files with 1434 additions and 366 deletions

View file

@ -1,8 +1,44 @@
<?php
use Drupal\Core\Mail\MailManagerInterface;
use Drupal\Component\Utility\SafeMarkup;
use Drupal\Component\Utility\Html;
/**
* Implements hook_cron().
*/
function wisski_cloud_account_manager_cron() {
$time_limit = \Drupal::time()->getRequestTime() - 24 * 60 * 60;
$ids = \Drupal::entityQuery('user')
->condition('status', 0)
->condition('created', $time_limit, '<')
->accessCheck(TRUE)
->execute();
// Delete rows from the wisski_cloud_account_manager table.
$connection = \Drupal::database();
$wisskiCloudUsers = $connection->select('wisski_cloud_account_manager', 'wcam')
->fields('wcam', ['uid'])
->condition('uid', $ids, 'IN')
->execute()
->fetchAll();
$ids = array_map(function($wisskiCloudUser) {
return $wisskiCloudUser->uid;
}, $wisskiCloudUsers);
if (empty($ids)) {
return;
}
\Drupal::logger('wisski_cloud_account_manager')->notice('Deleting users, who missed the validation: @ids', ['@ids' => implode(', ', $ids)]);
$connection->delete('wisski_cloud_account_manager')
->condition('uid', $ids, 'IN')
->execute();
$storage_handler = \Drupal::entityTypeManager()->getStorage('user');
$entities = $storage_handler->loadMultiple($ids);
$storage_handler->delete($entities);
}
/**
* Implements hook_help().
@ -28,6 +64,7 @@ function wisski_cloud_account_manager_help($route_name, \Drupal\Core\Routing\Rou
return $output;
}
/**
* Implements hook_mail().
*/
@ -63,12 +100,22 @@ function wisski_cloud_account_manager_theme($existing, $type, $theme, $path) {
'variables' => ['date' => NULL],
],
'wisski_cloud_account_manager_account_managing_page' => [
'variables' => ['accounts' => NULL],
'variables' => [
'accounts' => NULL,
'healthCheck' => NULL,],
],
'wisski_cloud_account_manager_validation_page' => [
'variables' => ['account' => NULL],
],
'wisski_cloud_account_manager_health_check_page' => [
'variables' => ['healthCheck' => NULL],
],
'wisski_cloud_account_manager_validation_email' => [
'variables' => [
'personName' => NULL,
'validationLink' => NULL,
],
],
];
}