@@ -148,8 +148,8 @@ public function test_non_admins_cannot_change_auth_id()
148148
149149 public function test_login_maps_roles_and_retains_existsing_roles ()
150150 {
151- $ roleToRecieve = factory (Role::class)->create (['name ' => 'ldaptester ' ]);
152- $ roleToRecieve2 = factory (Role::class)->create (['name ' => 'ldaptester-second ' ]);
151+ $ roleToReceive = factory (Role::class)->create (['name ' => 'ldaptester ' , ' display_name ' => ' LdapTester ' ]);
152+ $ roleToReceive2 = factory (Role::class)->create (['name ' => 'ldaptester-second ' , ' display_name ' => ' LdapTester Second ' ]);
153153 $ existingRole = factory (Role::class)->create (['name ' => 'ldaptester-existing ' ]);
154154 $ this ->mockUser ->forceFill (['external_auth_id ' => $ this ->mockUser ->name ])->save ();
155155 $ this ->mockUser ->attachRole ($ existingRole );
@@ -187,11 +187,11 @@ public function test_login_maps_roles_and_retains_existsing_roles()
187187 $ user = User::where ('email ' , $ this ->mockUser ->email )->first ();
188188 $ this ->seeInDatabase ('role_user ' , [
189189 'user_id ' => $ user ->id ,
190- 'role_id ' => $ roleToRecieve ->id
190+ 'role_id ' => $ roleToReceive ->id
191191 ]);
192192 $ this ->seeInDatabase ('role_user ' , [
193193 'user_id ' => $ user ->id ,
194- 'role_id ' => $ roleToRecieve2 ->id
194+ 'role_id ' => $ roleToReceive2 ->id
195195 ]);
196196 $ this ->seeInDatabase ('role_user ' , [
197197 'user_id ' => $ user ->id ,
@@ -201,7 +201,7 @@ public function test_login_maps_roles_and_retains_existsing_roles()
201201
202202 public function test_login_maps_roles_and_removes_old_roles_if_set ()
203203 {
204- $ roleToRecieve = factory (Role::class)->create (['name ' => 'ldaptester ' ]);
204+ $ roleToReceive = factory (Role::class)->create (['name ' => 'ldaptester ' , ' display_name ' => ' LdapTester ' ]);
205205 $ existingRole = factory (Role::class)->create (['name ' => 'ldaptester-existing ' ]);
206206 $ this ->mockUser ->forceFill (['external_auth_id ' => $ this ->mockUser ->name ])->save ();
207207 $ this ->mockUser ->attachRole ($ existingRole );
@@ -238,12 +238,64 @@ public function test_login_maps_roles_and_removes_old_roles_if_set()
238238 $ user = User::where ('email ' , $ this ->mockUser ->email )->first ();
239239 $ this ->seeInDatabase ('role_user ' , [
240240 'user_id ' => $ user ->id ,
241- 'role_id ' => $ roleToRecieve ->id
241+ 'role_id ' => $ roleToReceive ->id
242242 ]);
243243 $ this ->dontSeeInDatabase ('role_user ' , [
244244 'user_id ' => $ user ->id ,
245245 'role_id ' => $ existingRole ->id
246246 ]);
247247 }
248248
249+ public function test_external_auth_id_visible_in_roles_page_when_ldap_active ()
250+ {
251+ $ role = factory (Role::class)->create (['name ' => 'ldaptester ' , 'external_auth_id ' => 'ex-auth-a, test-second-param ' ]);
252+ $ this ->asAdmin ()->visit ('/settings/roles/ ' . $ role ->id )
253+ ->see ('ex-auth-a ' );
254+ }
255+
256+ public function test_login_maps_roles_using_external_auth_ids_if_set ()
257+ {
258+ $ roleToReceive = factory (Role::class)->create (['name ' => 'ldaptester ' , 'external_auth_id ' => 'test-second-param, ex-auth-a ' ]);
259+ $ roleToNotReceive = factory (Role::class)->create (['name ' => 'ldaptester-not-receive ' , 'display_name ' => 'ex-auth-a ' , 'external_auth_id ' => 'test-second-param ' ]);
260+
261+ app ('config ' )->set ([
262+ 'services.ldap.user_to_groups ' => true ,
263+ 'services.ldap.group_attribute ' => 'memberOf ' ,
264+ 'services.ldap.remove_from_groups ' => true ,
265+ ]);
266+ $ this ->mockLdap ->shouldReceive ('connect ' )->times (2 )->andReturn ($ this ->resourceId );
267+ $ this ->mockLdap ->shouldReceive ('setVersion ' )->times (2 );
268+ $ this ->mockLdap ->shouldReceive ('setOption ' )->times (4 );
269+ $ this ->mockLdap ->shouldReceive ('searchAndGetEntries ' )->times (4 )
270+ ->with ($ this ->resourceId , config ('services.ldap.base_dn ' ), \Mockery::type ('string ' ), \Mockery::type ('array ' ))
271+ ->andReturn (['count ' => 1 , 0 => [
272+ 'uid ' => [$ this ->mockUser ->name ],
273+ 'cn ' => [$ this ->mockUser ->name ],
274+ 'dn ' => ['dc=test ' . config ('services.ldap.base_dn ' )],
275+ 'mail ' => [$ this ->mockUser ->email ],
276+ 'memberof ' => [
277+ 'count ' => 1 ,
278+ 0 => "cn=ex-auth-a,ou=groups,dc=example,dc=com " ,
279+ ]
280+ ]]);
281+ $ this ->mockLdap ->shouldReceive ('bind ' )->times (5 )->andReturn (true );
282+
283+ $ this ->visit ('/login ' )
284+ ->see ('Username ' )
285+ ->type ($ this ->mockUser ->name , '#username ' )
286+ ->type ($ this ->mockUser ->password , '#password ' )
287+ ->press ('Log In ' )
288+ ->seePageIs ('/ ' );
289+
290+ $ user = User::where ('email ' , $ this ->mockUser ->email )->first ();
291+ $ this ->seeInDatabase ('role_user ' , [
292+ 'user_id ' => $ user ->id ,
293+ 'role_id ' => $ roleToReceive ->id
294+ ]);
295+ $ this ->dontSeeInDatabase ('role_user ' , [
296+ 'user_id ' => $ user ->id ,
297+ 'role_id ' => $ roleToNotReceive ->id
298+ ]);
299+ }
300+
249301}
0 commit comments