]> source.dussan.org Git - gitblit.git/commit
Set "can admin" permission on LDAP users and teams correctly 1152/head merged--fixAdminRoleLDAP
authorFlorian Zschocke <florian.zschocke@devolo.de>
Fri, 18 Nov 2016 19:26:06 +0000 (20:26 +0100)
committerFlorian Zschocke <florian.zschocke@devolo.de>
Fri, 18 Nov 2016 19:47:05 +0000 (20:47 +0100)
commit3b02737103c9d47f065f5026efad26c818cbe40a
tree37120e30eaa8010f6611accf8fe708cedc208478
parentf004a7f1d6bd9eaa6e7a8c8cd9ddae4187bd9994
Set "can admin" permission on LDAP users and teams correctly

The canAdmin permission is set on a LDAP user, when the user is listed
in `realm.ldap.admins` or is a member of a team listed in `realm.ldap.admins`.
This leads to inconsistent and surprising behaviour on the EditUser page
when clicking the "can admin" checkbox. Also, the "can admin" checkbox
is disabled, but not checked, for teams that are listed as admin teams.

The new behaviour implemented in this patch makes users and teams from
LDAP match local ones. That means:
* LDAP teams that are listed in `realm.ldap.admins` get the canAdmin
  property set if teams are maintained in LDAP.
* LDAP users that are listed in `realm.ldap.admins` get the canAdmin
  property set if teams are maintained in LDAP.
* LDAP users do not get the canAdmin property set, if they are only a
  member of a team listed in `realm.ldap.admins`.
* The `supportsRoleChanges` method for users and teams of the
  `LdapAuthProvider` unconditially returns false if teams are
  maintained in LDAP, not only for users and teams listed in
  `realm.ldap.admins`.
* Therefore, for all LDAP users and teams the "can admin" checkbox
  is always disabled if teams are maintained in LDAP.
src/main/java/com/gitblit/auth/LdapAuthProvider.java
src/test/java/com/gitblit/tests/LdapAuthenticationTest.java
src/test/resources/ldap/users.conf