Compare commits

..

No commits in common. "23f28d39c7293b46a2f6d7767eeb21b1fe8b9efd" and "62fbdbf1c20e226252c5ac2064f3b7bc4ad39ae5" have entirely different histories.

4 changed files with 6 additions and 94 deletions

View file

@ -24,6 +24,12 @@ repos:
- id: php-stan - id: php-stan
files: ^(?!example/).*\.(php)$ files: ^(?!example/).*\.(php)$
args: ["--configuration=phpstan.neon"] args: ["--configuration=phpstan.neon"]
- repo: https://github.com/digitalpulp/pre-commit-php.git
rev: 1.4.0
hooks:
- id: php-stan
files: ^example/.*\.(php)$
args: ["--configuration=example/phpstan.neon"]
- repo: https://github.com/pre-commit/pre-commit-hooks - repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0 rev: v4.4.0
hooks: hooks:

View file

@ -21,18 +21,6 @@ class Backend {
return null; return null;
} }
/**
* Update a user
* @param \EesyPHP\Auth\User $user The user object
* @param array<string,mixed> $changes Array of changes
* @param boolean $no_change_as_success Consider no change provided as success
* (optional, default: false)
* @return boolean True if user was updated, false otherwise
*/
public static function update_user($user, $changes, $no_change_as_success=False) {
return false;
}
/** /**
* Check a user password * Check a user password
* @param \EesyPHP\Auth\User $user The user object * @param \EesyPHP\Auth\User $user The user object

View file

@ -263,68 +263,6 @@ class Ldap extends Backend {
return new User($username, '\\EesyPHP\\Auth\\Ldap', $info); return new User($username, '\\EesyPHP\\Auth\\Ldap', $info);
} }
/**
* Update a user
* @param \EesyPHP\Auth\User $user The user object
* @param array<string,mixed> $changes Array of changes
* @param boolean $no_change_as_success Consider no change provided as success
* (optional, default: false)
* @return boolean True if user was updated, false otherwise
*/
public static function update_user($user, $changes, $no_change_as_success=False) {
Log::debug("Ldap::update_user(%s): changes=%s", $user->dn, vardump($changes));
if (!$user->dn) {
Log::error("Ldap::update_user(): Invalid user provided (no DN)");
return false;
}
if (!is_array($changes)) {
Log::error("Ldap::update_user(%s): Invalid changes provided (not an array)", $user->dn);
return false;
}
$attrs = App::get('auth.ldap.user_attributes', null, 'array');
$updated_attrs = [];
$deleted_attrs = [];
foreach($changes as $attr => $value) {
if (!array_key_exists($attr, $attrs)) {
Log::error(
"Ldap::update_user(%s): Changes on unknown attribute %s provided",
$user->dn, $attr
);
return false;
}
$ldap_name = Config::get("$attr.ldap_name", $attr, 'string', false, $attrs);
if ($value)
$updated_attrs[$ldap_name] = ensure_is_array($value);
else
$deleted_attrs[] = $ldap_name;
}
if (empty($updated_attrs) && empty($deleted_attrs)) {
Log::debug("Ldap::update_user(%s): no change provided", $user->dn);
return $no_change_as_success;
}
if (!self :: connect()) return false;
// @phpstan-ignore-next-line
$entry = self :: $connection -> getEntry($user->dn);
// @phpstan-ignore-next-line
if (Net_LDAP2::isError($entry)) {
Log::warning('User "%s" (%s) not found', $user->username, $user->dn);
return false;
}
if ($updated_attrs) $entry->replace($updated_attrs);
if ($deleted_attrs) $entry->delete($deleted_attrs);
$result = $entry -> update();
// @phpstan-ignore-next-line
if (Net_LDAP2::isError($result)) {
Log::error(
'Fail to update user "%s" (%s): %s',
$user->username, $user->dn, $result->getMessage()
);
return false;
}
Log::info('User "%s" (%s) updated', $user->username, $user->dn);
return true;
}
/** /**
* Check a user password * Check a user password
* @param \EesyPHP\Auth\User $user The user object * @param \EesyPHP\Auth\User $user The user object

View file

@ -25,12 +25,6 @@ class User {
*/ */
private $info; private $info;
/**
* Original user object (set on change and keep to handle update)
* @var User|null
*/
private $original_user;
/** /**
* Constructor * Constructor
* @param string $username The username * @param string $username The username
@ -83,8 +77,6 @@ class User {
$this -> info = ensure_is_array($value); $this -> info = ensure_is_array($value);
break; break;
default: default:
if (!isset($this ->original_user))
$this -> original_user = new User($this->username, $this->backend, $this->info);
$this -> info[$key] = $value; $this -> info[$key] = $value;
} }
} }
@ -127,16 +119,4 @@ class User {
return $this -> namename; return $this -> namename;
} }
/**
* Update user
* @return bool
*/
public function save() {
if (!isset($this -> original_user)) return true;
return call_user_func(
array($this -> backend, 'update_user'),
$this -> original_user, $this -> info, true
);
}
} }