mirror of
https://github.com/kuaifan/dootask.git
synced 2026-04-23 10:18:41 +00:00
fix(ldap): 修复 AD 环境下用户搜索失败和密码策略冲突
- objectClasses 移除 inetOrgPerson 和 organizationalPerson,仅保留 person + top AD 用户的 objectClass 是 user 而非 inetOrgPerson,导致 LdapRecord 搜索过滤不到用户 - LDAP 用户首次创建本地账号时使用随机密码,避免 LDAP 密码不满足本地密码策略 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
c8ddb511cf
commit
717e520556
@ -19,8 +19,6 @@ class LdapUser extends Model
|
|||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
public static $objectClasses = [
|
public static $objectClasses = [
|
||||||
'inetOrgPerson',
|
|
||||||
'organizationalPerson',
|
|
||||||
'person',
|
'person',
|
||||||
'top',
|
'top',
|
||||||
];
|
];
|
||||||
@ -208,7 +206,9 @@ class LdapUser extends Model
|
|||||||
}
|
}
|
||||||
$user = User::whereEmail($email)->first();
|
$user = User::whereEmail($email)->first();
|
||||||
if (empty($user)) {
|
if (empty($user)) {
|
||||||
$user = User::reg($email, $password);
|
// LDAP 用户通过 LDAP 认证,本地密码用随机值以满足密码策略
|
||||||
|
$localPassword = Base::generatePassword(16) . 'Aa1!';
|
||||||
|
$user = User::reg($email, $localPassword);
|
||||||
} elseif (!$user->isLdap()) {
|
} elseif (!$user->isLdap()) {
|
||||||
info("[LDAP] merged with existing local account: userid={$user->userid}, email={$email}");
|
info("[LDAP] merged with existing local account: userid={$user->userid}, email={$email}");
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user