Elgg  Version 6.3
AdminValidation.php
Go to the documentation of this file.
1 <?php
2 
4 
6 
13 
14  protected int $unvalidated_count = 0;
15 
19  public function getSubscriptions(): array {
20  $this->unvalidated_count = elgg_call(ELGG_IGNORE_ACCESS | ELGG_SHOW_DISABLED_ENTITIES, function() {
21  return elgg_count_entities([
22  'type' => 'user',
23  'metadata_name_value_pairs' => [
24  'validated' => 0,
25  ],
26  ]);
27  });
28  if (empty($this->unvalidated_count)) {
29  return [];
30  }
31 
32  $result = [];
33 
34  $admins = elgg_get_admins([
35  'limit' => false,
36  'batch' => true,
37  ]);
38  /* @var $admin \ElggUser */
39  foreach ($admins as $admin) {
40  $notification_preferences = $admin->getNotificationSettings('admin_validation_notification', true);
41  if (empty($notification_preferences)) {
42  continue;
43  }
44 
45  $result[$admin->guid] = $notification_preferences;
46  }
47 
48  return $result;
49  }
50 
54  protected function getNotificationSubject(\ElggUser $recipient, string $method): string {
56 
57  return elgg_echo('admin:notification:unvalidated_users:subject', [$site->getDisplayName()]);
58  }
59 
63  protected function getNotificationSummary(\ElggUser $recipient, string $method): string {
65 
66  return elgg_echo('admin:notification:unvalidated_users:subject', [$site->getDisplayName()]);
67  }
68 
72  protected function getNotificationBody(\ElggUser $recipient, string $method): string {
74 
75  return elgg_echo('admin:notification:unvalidated_users:body', [
76  $this->unvalidated_count,
77  $site->getDisplayName(),
78  elgg_generate_url('admin', [
79  'segments' => 'users/unvalidated',
80  ]),
81  ]);
82  }
83 
87  protected function getNotificationURL(\ElggUser $recipient, string $method): string {
88  return elgg_generate_url('admin', [
89  'segments' => 'users/unvalidated',
90  ]);
91  }
92 }
$site
Definition: icons.php:5
$recipient
Definition: mute.php:8
$admin
Definition: useradd.php:19
return[ 'admin/delete_admin_notices'=>['access'=> 'admin'], 'admin/menu/save'=>['access'=> 'admin'], 'admin/plugins/activate'=>['access'=> 'admin'], 'admin/plugins/activate_all'=>['access'=> 'admin'], 'admin/plugins/deactivate'=>['access'=> 'admin'], 'admin/plugins/deactivate_all'=>['access'=> 'admin'], 'admin/plugins/set_priority'=>['access'=> 'admin'], 'admin/security/security_txt'=>['access'=> 'admin'], 'admin/security/settings'=>['access'=> 'admin'], 'admin/security/regenerate_site_secret'=>['access'=> 'admin'], 'admin/site/cache/invalidate'=>['access'=> 'admin'], 'admin/site/flush_cache'=>['access'=> 'admin'], 'admin/site/icons'=>['access'=> 'admin'], 'admin/site/set_maintenance_mode'=>['access'=> 'admin'], 'admin/site/set_robots'=>['access'=> 'admin'], 'admin/site/theme'=>['access'=> 'admin'], 'admin/site/unlock_upgrade'=>['access'=> 'admin'], 'admin/site/settings'=>['access'=> 'admin'], 'admin/upgrade'=>['access'=> 'admin'], 'admin/upgrade/reset'=>['access'=> 'admin'], 'admin/user/ban'=>['access'=> 'admin'], 'admin/user/bulk/ban'=>['access'=> 'admin'], 'admin/user/bulk/delete'=>['access'=> 'admin'], 'admin/user/bulk/unban'=>['access'=> 'admin'], 'admin/user/bulk/validate'=>['access'=> 'admin'], 'admin/user/change_email'=>['access'=> 'admin'], 'admin/user/delete'=>['access'=> 'admin'], 'admin/user/login_as'=>['access'=> 'admin'], 'admin/user/logout_as'=>[], 'admin/user/makeadmin'=>['access'=> 'admin'], 'admin/user/resetpassword'=>['access'=> 'admin'], 'admin/user/removeadmin'=>['access'=> 'admin'], 'admin/user/unban'=>['access'=> 'admin'], 'admin/user/validate'=>['access'=> 'admin'], 'annotation/delete'=>[], 'avatar/upload'=>[], 'comment/save'=>[], 'diagnostics/download'=>['access'=> 'admin'], 'entity/chooserestoredestination'=>[], 'entity/delete'=>[], 'entity/mute'=>[], 'entity/restore'=>[], 'entity/subscribe'=>[], 'entity/trash'=>[], 'entity/unmute'=>[], 'entity/unsubscribe'=>[], 'login'=>['access'=> 'logged_out'], 'logout'=>[], 'notifications/mute'=>['access'=> 'public'], 'plugins/settings/remove'=>['access'=> 'admin'], 'plugins/settings/save'=>['access'=> 'admin'], 'plugins/usersettings/save'=>[], 'register'=>['access'=> 'logged_out', 'middleware'=>[\Elgg\Router\Middleware\RegistrationAllowedGatekeeper::class,],], 'river/delete'=>[], 'settings/notifications'=>[], 'settings/notifications/subscriptions'=>[], 'user/changepassword'=>['access'=> 'public'], 'user/requestnewpassword'=>['access'=> 'public'], 'useradd'=>['access'=> 'admin'], 'usersettings/save'=>[], 'widgets/add'=>[], 'widgets/delete'=>[], 'widgets/move'=>[], 'widgets/save'=>[],]
Definition: actions.php:73
Send a notification to all (subscribed) site admins that there are unvalidated users.
getNotificationSummary(\ElggUser $recipient, string $method)
{Return the summary for a notification.Notification recipient Methodstring}
getNotificationBody(\ElggUser $recipient, string $method)
{Get body for the notification.Plugin can define a subtype specific body simply by providing a transl...
getNotificationURL(\ElggUser $recipient, string $method)
{Returns the url related to this notification.Notification recipient Methodstring}
getNotificationSubject(\ElggUser $recipient, string $method)
{Get subject for the notification.Plugins can define a subtype specific subject simply by providing a...
getSubscriptions()
{Returns subscriptions for the event.array}
A notification event handler which isn't configurable by a user.
const ELGG_IGNORE_ACCESS
elgg_call() flags
Definition: constants.php:121
const ELGG_SHOW_DISABLED_ENTITIES
Definition: constants.php:123
elgg_call(int $flags, Closure $closure)
Calls a callable autowiring the arguments using public DI services and applying logic based on flags.
Definition: elgglib.php:290
elgg_get_admins(array $options=[])
Elgg admin functions.
Definition: admin.php:26
elgg_count_entities(array $options=[])
Returns a count of entities.
Definition: entities.php:518
elgg_get_site_entity()
Get the current site entity.
Definition: entities.php:99
elgg_echo(string $message_key, array $args=[], string $language='')
Elgg language module Functions to manage language and translations.
Definition: languages.php:17
elgg_generate_url(string $name, array $parameters=[])
Generate a URL for named route.