Created
March 2, 2018 06:22
-
-
Save bendasvadim/0906f731a71c370055cd8fcd2896da35 to your computer and use it in GitHub Desktop.
Востановление пароля через MODX Api
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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