SAML2: Included parsed groups in dump data
Updated code style of class while there. Removed redundant check and string translation used. For #4706
This commit is contained in:
		
							parent
							
								
									596f7314cd
								
							
						
					
					
						commit
						11853361b0
					
				| 
						 | 
					@ -21,19 +21,13 @@ use OneLogin\Saml2\ValidationError;
 | 
				
			||||||
class Saml2Service
 | 
					class Saml2Service
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    protected array $config;
 | 
					    protected array $config;
 | 
				
			||||||
    protected RegistrationService $registrationService;
 | 
					 | 
				
			||||||
    protected LoginService $loginService;
 | 
					 | 
				
			||||||
    protected GroupSyncService $groupSyncService;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function __construct(
 | 
					    public function __construct(
 | 
				
			||||||
        RegistrationService $registrationService,
 | 
					        protected RegistrationService $registrationService,
 | 
				
			||||||
        LoginService $loginService,
 | 
					        protected LoginService $loginService,
 | 
				
			||||||
        GroupSyncService $groupSyncService
 | 
					        protected GroupSyncService $groupSyncService
 | 
				
			||||||
    ) {
 | 
					    ) {
 | 
				
			||||||
        $this->config = config('saml2');
 | 
					        $this->config = config('saml2');
 | 
				
			||||||
        $this->registrationService = $registrationService;
 | 
					 | 
				
			||||||
        $this->loginService = $loginService;
 | 
					 | 
				
			||||||
        $this->groupSyncService = $groupSyncService;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
| 
						 | 
					@ -357,6 +351,10 @@ class Saml2Service
 | 
				
			||||||
        $userDetails = $this->getUserDetails($samlID, $samlAttributes);
 | 
					        $userDetails = $this->getUserDetails($samlID, $samlAttributes);
 | 
				
			||||||
        $isLoggedIn = auth()->check();
 | 
					        $isLoggedIn = auth()->check();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if ($this->shouldSyncGroups()) {
 | 
				
			||||||
 | 
					            $userDetails['groups'] = $this->getUserGroups($samlAttributes);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ($this->config['dump_user_details']) {
 | 
					        if ($this->config['dump_user_details']) {
 | 
				
			||||||
            throw new JsonDebugException([
 | 
					            throw new JsonDebugException([
 | 
				
			||||||
                'id_from_idp'         => $samlID,
 | 
					                'id_from_idp'         => $samlID,
 | 
				
			||||||
| 
						 | 
					@ -379,13 +377,8 @@ class Saml2Service
 | 
				
			||||||
            $userDetails['external_id']
 | 
					            $userDetails['external_id']
 | 
				
			||||||
        );
 | 
					        );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if ($user === null) {
 | 
					 | 
				
			||||||
            throw new SamlException(trans('errors.saml_user_not_registered', ['name' => $userDetails['external_id']]), '/login');
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if ($this->shouldSyncGroups()) {
 | 
					        if ($this->shouldSyncGroups()) {
 | 
				
			||||||
            $groups = $this->getUserGroups($samlAttributes);
 | 
					            $this->groupSyncService->syncUserWithFoundGroups($user, $userDetails['groups'], $this->config['remove_from_groups']);
 | 
				
			||||||
            $this->groupSyncService->syncUserWithFoundGroups($user, $groups, $this->config['remove_from_groups']);
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $this->loginService->login($user, 'saml2');
 | 
					        $this->loginService->login($user, 'saml2');
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,7 +19,6 @@ return [
 | 
				
			||||||
    'ldap_extension_not_installed' => 'LDAP PHP extension not installed',
 | 
					    'ldap_extension_not_installed' => 'LDAP PHP extension not installed',
 | 
				
			||||||
    'ldap_cannot_connect' => 'Cannot connect to ldap server, Initial connection failed',
 | 
					    'ldap_cannot_connect' => 'Cannot connect to ldap server, Initial connection failed',
 | 
				
			||||||
    'saml_already_logged_in' => 'Already logged in',
 | 
					    'saml_already_logged_in' => 'Already logged in',
 | 
				
			||||||
    'saml_user_not_registered' => 'The user :name is not registered and automatic registration is disabled',
 | 
					 | 
				
			||||||
    'saml_no_email_address' => 'Could not find an email address, for this user, in the data provided by the external authentication system',
 | 
					    'saml_no_email_address' => 'Could not find an email address, for this user, in the data provided by the external authentication system',
 | 
				
			||||||
    'saml_invalid_response_id' => 'The request from the external authentication system is not recognised by a process started by this application. Navigating back after a login could cause this issue.',
 | 
					    'saml_invalid_response_id' => 'The request from the external authentication system is not recognised by a process started by this application. Navigating back after a login could cause this issue.',
 | 
				
			||||||
    'saml_fail_authed' => 'Login using :system failed, system did not provide successful authorization',
 | 
					    'saml_fail_authed' => 'Login using :system failed, system did not provide successful authorization',
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Loading…
	
		Reference in New Issue