Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save bendasvadim/0906f731a71c370055cd8fcd2896da35 to your computer and use it in GitHub Desktop.
Save bendasvadim/0906f731a71c370055cd8fcd2896da35 to your computer and use it in GitHub Desktop.
Востановление пароля через MODX Api
<?php
define('MODX_API_MODE', true); // Gotta set this one constant.
// Сбрасывает пароль и email существующего пользователя
// и задаёт его группу
$username = 'theusername';
$password = 'newpassword';
$email = '[email protected]';
$user_group = 1; // 1 для Administrator
// полный путь к MODX index.php файлу
require_once('/full/path/to/index.php');
// ====== Не изменяйте ничего ниже этой линии ======
if (empty($username) || empty($password) || empty($email)) {
die('ERROR: Missing criteria.');
}
$modx= new modX();
$modx->initialize('mgr');
$query = $modx->newQuery('modUser');
$query->where( array('username'=>$username) );
$user = $modx->getObjectGraph('modUser', '{ "Profile":{}, "UserGroupMembers":{} }', $query);
// print_r($user); exit;
if (!$user) {
die("ERROR: No user with username $username");
}
$user->set('username',$username);
$user->set('active',1);
$user->set('password', $password);
$user->Profile->set('email', $email);
$user->Profile->set('blocked', 0);
$user->Profile->set('blockeduntil', 0);
$user->Profile->set('blockedafter', 0);
// Проверка, что пользователь является членом User Group
$is_member = false;
if (!empty($user->UserGroupMembers)) {
foreach ($user->UserGroupMembers as $UserGroupMembers) {
if ($UserGroupMembers->get('user_group') == $user_group) {
$is_member = true;
break;
}
}
}
// Добавляет Пользователя к Группе пользователя (User Group) если он не является её членом
if (!$is_member) {
// Проверка существования группы пользователя
$UserGroup = $modx->getObject('modUserGroup', $user_group);
if (!$UserGroup) {
die ("ERROR: User Group $user_group does not exist.");
}
$Member = $modx->newObject('modUserGroupMember');
$Member->set('user_group', $user_group);
$Member->set('member', $user->get('id'));
// Super User = role 2
$Member->set('role', 2);
$Member->set('rank', 0);
$user->addOne($Member,'UserGroupMembers');
}
/* сохранение пользователя */
if (!$user->save()) {
die('ERROR: Could not save user.');
}
print "SUCCESS: User $username updated.";
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment