asdasdasd
This commit is contained in:
@@ -61,6 +61,7 @@ return [
|
||||
'group_assignment_mode' => getenv('LDAP_GROUP_ASSIGNMENT_MODE') ?: 'group_memberuid',
|
||||
'group_member_attribute' => getenv('LDAP_GROUP_MEMBER_ATTRIBUTE') ?: 'memberUid',
|
||||
'default_login_shell' => '/bin/sh',
|
||||
'apple_schema_enabled' => filter_var(getenv('LDAP_APPLE_SCHEMA_ENABLED') ?: 'false', FILTER_VALIDATE_BOOL),
|
||||
'home_directory_prefix' => '/home',
|
||||
'uid_number_start' => (int) (getenv('LDAP_UID_NUMBER_START') ?: 1000010),
|
||||
'gid_number_default' => (int) (getenv('LDAP_GID_NUMBER_DEFAULT') ?: 1000012),
|
||||
|
||||
@@ -321,16 +321,14 @@ final class LdapProvisioner
|
||||
$unixHash = $this->cryptSha512($plainPassword);
|
||||
$now = time();
|
||||
$shadowLastChange = (string) floor($now / 86400);
|
||||
$appleSchemaEnabled = (bool) ($this->config['ldap']['apple_schema_enabled'] ?? false);
|
||||
|
||||
return [
|
||||
$entry = [
|
||||
'objectClass' => [
|
||||
'apple-user',
|
||||
'extensibleObject',
|
||||
'inetOrgPerson',
|
||||
'organizationalPerson',
|
||||
'person',
|
||||
'posixAccount',
|
||||
'sambaIdmapEntry',
|
||||
'sambaSamAccount',
|
||||
'shadowAccount',
|
||||
'top',
|
||||
@@ -342,13 +340,12 @@ final class LdapProvisioner
|
||||
'sn' => $familyName !== '' ? $familyName : $username,
|
||||
'uid' => $username,
|
||||
'uidNumber' => $uidNumber,
|
||||
'apple-generateduid' => $appleGeneratedUid,
|
||||
'authAuthority' => ';basic;',
|
||||
'displayName' => $displayName !== '' ? $displayName : $username,
|
||||
'gecos' => $gecos,
|
||||
'givenName' => $givenName,
|
||||
'loginShell' => $loginShell,
|
||||
'mail' => $mail,
|
||||
'pwdLastSet' => '0',
|
||||
'sambaAcctFlags' => '[U ]',
|
||||
'sambaLMPassword' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
|
||||
'sambaNTPassword' => $ntHash,
|
||||
@@ -363,6 +360,15 @@ final class LdapProvisioner
|
||||
'shadowWarning' => (string) ($this->config['ldap']['shadow_warning'] ?? 7),
|
||||
'userPassword' => $unixHash,
|
||||
];
|
||||
|
||||
if ($appleSchemaEnabled) {
|
||||
array_unshift($entry['objectClass'], 'extensibleObject');
|
||||
array_unshift($entry['objectClass'], 'apple-user');
|
||||
$entry['apple-generateduid'] = $appleGeneratedUid;
|
||||
$entry['authAuthority'] = ';basic;';
|
||||
}
|
||||
|
||||
return $entry;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -35,6 +35,7 @@ final class RegistrationLdifBuilder
|
||||
$mail = trim((string) ($request['email'] ?? ''));
|
||||
$appleGeneratedUid = trim((string) ($provisioning['apple_generateduid'] ?? $this->generateUuidV4()));
|
||||
$sambaSid = trim((string) ($provisioning['samba_sid'] ?? ''));
|
||||
$appleSchemaEnabled = (bool) ($this->config['ldap']['apple_schema_enabled'] ?? false);
|
||||
$shadowExpire = (string) ($this->config['ldap']['shadow_expire'] ?? 1);
|
||||
$shadowFlag = (string) ($this->config['ldap']['shadow_flag'] ?? 0);
|
||||
$shadowInactive = (string) ($this->config['ldap']['shadow_inactive'] ?? 0);
|
||||
@@ -77,16 +78,19 @@ final class RegistrationLdifBuilder
|
||||
}
|
||||
|
||||
$lines[] = 'dn: uid=' . $username . ',' . $usersDn;
|
||||
$lines[] = 'objectClass: apple-user';
|
||||
$lines[] = 'objectClass: extensibleObject';
|
||||
$lines[] = 'objectClass: inetOrgPerson';
|
||||
$lines[] = 'objectClass: organizationalPerson';
|
||||
$lines[] = 'objectClass: person';
|
||||
$lines[] = 'objectClass: posixAccount';
|
||||
$lines[] = 'objectClass: sambaIdmapEntry';
|
||||
$lines[] = 'objectClass: sambaSamAccount';
|
||||
$lines[] = 'objectClass: shadowAccount';
|
||||
$lines[] = 'objectClass: top';
|
||||
|
||||
if ($appleSchemaEnabled) {
|
||||
$lines[] = 'objectClass: apple-user';
|
||||
$lines[] = 'objectClass: extensibleObject';
|
||||
}
|
||||
|
||||
$lines[] = 'cn: ' . $cn;
|
||||
|
||||
if ($gidNumber !== '') {
|
||||
@@ -106,9 +110,12 @@ final class RegistrationLdifBuilder
|
||||
$lines[] = 'uidNumber: ' . $uidNumber;
|
||||
}
|
||||
|
||||
$lines[] = 'displayName: ' . ($displayName !== '' ? $displayName : $username);
|
||||
|
||||
if ($appleSchemaEnabled) {
|
||||
$lines[] = 'apple-generateduid: ' . strtoupper($appleGeneratedUid);
|
||||
$lines[] = 'authAuthority: ;basic;';
|
||||
$lines[] = 'displayName: ' . ($displayName !== '' ? $displayName : $username);
|
||||
}
|
||||
|
||||
if ($gecos !== '') {
|
||||
$lines[] = 'gecos: ' . $gecos;
|
||||
@@ -125,6 +132,11 @@ final class RegistrationLdifBuilder
|
||||
$lines[] = 'memberOf: ' . $groupDn;
|
||||
}
|
||||
|
||||
$lines[] = 'pwdLastSet: 0';
|
||||
$lines[] = 'sambaAcctFlags: [U ]';
|
||||
$lines[] = 'sambaLMPassword: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
|
||||
$lines[] = 'sambaPasswordHistory: 0000000000000000000000000000000000000000000000000000000000000000';
|
||||
$lines[] = 'sambaPwdLastSet: 0';
|
||||
$lines[] = 'shadowExpire: ' . $shadowExpire;
|
||||
$lines[] = 'shadowFlag: ' . $shadowFlag;
|
||||
$lines[] = 'shadowInactive: ' . $shadowInactive;
|
||||
|
||||
Reference in New Issue
Block a user