mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-03-22 12:45:13 +08:00
Fixed LDAP group sync using wrong user filter
LDAP group sync was trying to find users based on the external_auth_id which is not garunteed to match the username entered so somtimes the search for a user would fail. This passes the username to the group sync. Picked up by @yoyokko in #959.
This commit is contained in:
parent
01260d95f3
commit
d2a9b312e9
@ -103,7 +103,7 @@ class LoginController extends Controller
|
||||
|
||||
// Sync LDAP groups if required
|
||||
if ($this->ldapService->shouldSyncGroups()) {
|
||||
$this->ldapService->syncGroups($user);
|
||||
$this->ldapService->syncGroups($user, $request->get($this->username()));
|
||||
}
|
||||
|
||||
$path = session()->pull('url.intended', '/');
|
||||
|
@ -299,11 +299,12 @@ class LdapService
|
||||
/**
|
||||
* Sync the LDAP groups to the user roles for the current user
|
||||
* @param \BookStack\User $user
|
||||
* @param string $username
|
||||
* @throws LdapException
|
||||
*/
|
||||
public function syncGroups(User $user)
|
||||
public function syncGroups(User $user, string $username)
|
||||
{
|
||||
$userLdapGroups = $this->getUserGroups($user->external_auth_id);
|
||||
$userLdapGroups = $this->getUserGroups($username);
|
||||
|
||||
// Get the ids for the roles from the names
|
||||
$ldapGroupsAsRoles = $this->matchLdapGroupsToSystemsRoles($userLdapGroups);
|
||||
|
Loading…
x
Reference in New Issue
Block a user