Elgg  Version 6.2
users.php
Go to the documentation of this file.
1 <?php
16 function get_user(int $guid): ?\ElggUser {
17  $result = _elgg_services()->entityTable->get($guid, 'user');
18 
19  return $result instanceof \ElggUser ? $result : null;
20 }
21 
31 function elgg_get_user_by_username(string $username, bool $try_email = false): ?\ElggUser {
32  if (empty($username)) {
33  return null;
34  }
35 
36  if ($try_email && elgg_is_valid_email($username)) {
38  if ($user instanceof \ElggUser) {
39  return $user;
40  }
41  }
42 
43  // Fixes #6052. Username is frequently sniffed from the path info, which,
44  // unlike $_GET, is not URL decoded. If the username was not URL encoded,
45  // this is harmless.
46  $username = rawurldecode($username);
47  if (empty($username)) {
48  return null;
49  }
50 
51  $logged_in_user = elgg_get_logged_in_user_entity();
52  if (!empty($logged_in_user) && ($logged_in_user->username === $username)) {
53  return $logged_in_user;
54  }
55 
57  'types' => 'user',
58  'metadata_name_value_pairs' => [
59  [
60  'name' => 'username',
61  'value' => $username,
62  'case_sensitive' => false,
63  ],
64  ],
65  'limit' => 1,
66  ]);
67 
68  return $users ? $users[0] : null;
69 }
70 
79 function elgg_get_user_by_email(string $email): ?\ElggUser {
80  if (empty($email)) {
81  return null;
82  }
83 
85  'types' => 'user',
86  'metadata_name_value_pairs' => [
87  [
88  'name' => 'email',
89  'value' => $email,
90  'case_sensitive' => false,
91  ],
92  ],
93  'limit' => 1,
94  ]);
95 
96  return $users ? $users[0] : null;
97 }
98 
109  _elgg_services()->passwords->requestNewPassword($user);
110 }
111 
123 function elgg_save_new_password(\ElggUser $user, string $conf_code, ?string $password = null): bool {
124  return _elgg_services()->passwords->saveNewPassword($user, $conf_code, $password);
125 }
126 
134 function elgg_generate_password(): string {
135  return _elgg_services()->passwordGenerator->generatePassword();
136 }
137 
154 function elgg_register_user(array $params = []): \ElggUser {
155  return _elgg_services()->accounts->register($params);
156 }
157 
171 function elgg_validate_registration_data(string $username, string|array $password, string $name, string $email, bool $allow_multiple_emails = false): \Elgg\Validation\ValidationResults {
172  return _elgg_services()->accounts->validateAccountData($username, $password, $name, $email, $allow_multiple_emails);
173 }
174 
184 function elgg_generate_invite_code(string $username): string {
185  return _elgg_services()->hmac->generateInviteCode($username);
186 }
187 
198 function elgg_validate_invite_code(string $username, string $code): bool {
199  return _elgg_services()->hmac->validateInviteCode($username, $code);
200 }
201 
213 function elgg_get_registration_url(array $parameters = [], string $fragment = ''): string {
214  $url = elgg_generate_url('account:register', $parameters) . $fragment;
215 
216  return (string) elgg_trigger_event_results('registration_url', 'site', $parameters, $url);
217 }
218 
228 function elgg_get_login_url(array $query = [], string $fragment = ''): string {
229  $url = elgg_generate_url('account:login');
231  return (string) elgg_trigger_event_results('login_url', 'site', $query, $url);
232 }
233 
245  return _elgg_services()->persistentLogin->getUserFromToken($token);
246 }
$guid
Reset an ElggUpgrade.
Definition: reset.php:6
$email
Definition: change_email.php:7
$username
Definition: delete.php:23
if(! $user||! $user->canDelete()) $name
Definition: delete.php:22
$params
Saves global plugin settings.
Definition: save.php:13
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
if(empty($user_guids)) $users
Definition: ban.php:12
$query
foreach($plugin_guids as $guid) if(empty($deactivated_plugins)) $url
Definition: deactivate.php:39
_elgg_services()
Get the global service provider.
Definition: elgglib.php:353
elgg_http_add_url_query_elements(string $url, array $elements)
Sets elements in a URL's query string.
Definition: elgglib.php:183
elgg_is_valid_email(string $address)
Validates an email address.
Definition: input.php:89
elgg_validate_registration_data(string $username, string|array $password, string $name, string $email, bool $allow_multiple_emails=false)
Assert that given registration details are valid and can be used to register the user.
Definition: users.php:171
elgg_save_new_password(\ElggUser $user, string $conf_code, ?string $password=null)
Validate and change password for a user.
Definition: users.php:123
elgg_register_user(array $params=[])
Registers a user.
Definition: users.php:154
elgg_generate_password()
Generate a random 12 character clear text password.
Definition: users.php:134
elgg_validate_invite_code(string $username, string $code)
Validate a user's invite code.
Definition: users.php:198
elgg_get_user_by_email(string $email)
Get a user from an email address.
Definition: users.php:79
get_user(int $guid)
Elgg users Functions to manage multiple or single users in an Elgg install.
Definition: users.php:16
elgg_get_registration_url(array $parameters=[], string $fragment='')
Returns site's registration URL Triggers a 'registration_url', 'site' event that can be used by plugi...
Definition: users.php:213
elgg_get_user_by_persistent_token(string $token)
Get a user based on a persistent login token.
Definition: users.php:244
elgg_request_new_password(\ElggUser $user)
Generate and send a password request email to a given user's registered email address.
Definition: users.php:108
elgg_generate_invite_code(string $username)
Generates a unique invite code for a user.
Definition: users.php:184
elgg_get_user_by_username(string $username, bool $try_email=false)
Get a user by username.
Definition: users.php:31
elgg_get_login_url(array $query=[], string $fragment='')
Returns site's login URL Triggers a 'login_url', 'site' event that can be used by plugins to alter th...
Definition: users.php:228
elgg_get_entities(array $options=[])
Fetches/counts entities or performs a calculation on their properties.
Definition: entities.php:507
elgg_trigger_event_results(string $event, string $type, array $params=[], $returnvalue=null)
Triggers an event where it is expected that the mixed return value could be manipulated by event call...
Definition: events.php:117
elgg_generate_url(string $name, array $parameters=[])
Generate a URL for named route.
if(! $user||! $user->canEdit()) $password
$token
elgg_get_logged_in_user_entity()
Return the current logged in user, or null if no user is logged in.
Definition: sessions.php:24
$result
Definition: users.php:3
if(! $user instanceof \ElggUser)
Definition: users.php:12
$user
Definition: users.php:11