Commit Graph

374 Commits

Author SHA1 Message Date
Johannes Meyer 878bd78587 LdapUserBackend: Unfold the user_name_attribute automatically
This is.. the currently easiest solution. As long as attribute unfolding
is not very performance intensive this solution suffices.

refs #10367
refs #10332
2015-10-16 17:25:42 +02:00
Johannes Meyer 8ed489c637 LdapUserGroupBackend: Add method persistUserName()
refs #10367
refs #10370
2015-10-16 15:28:44 +02:00
Johannes Meyer 58fc87b2e5 Repository: Ensure that we'll internally only work with virtual table names
refs #10367
2015-10-16 14:46:44 +02:00
Johannes Meyer 1b7dc1098c DbUserGroupBackend: Use LEFT JOIN to join the group_membership table
Fixes the issue that groups are not found if they do not have any members
even though they meet the where clause
2015-10-16 13:10:39 +02:00
Johannes Meyer 7ef76932d4 DbRepository: Validate the table when inserting, updating and deleting 2015-10-16 12:36:47 +02:00
Johannes Meyer 33037eebbb Revert "Fix group base DN is erroneously used in place of user base DN"
This reverts commit ac7546d9f2.
2015-10-16 10:08:14 +02:00
Johannes Meyer 34bf0c3cb0 Add method getUserBackendName() to UserGroupBackendInterface
refs #10367
refs #10373
2015-10-15 15:28:03 +02:00
Eric Lippmann 331822ad15 Merge pull request #47 from anenviousguest/master 2015-10-15 12:53:10 +02:00
Vladislav Ponomarev ac7546d9f2 Fix group base DN is erroneously used in place of user base DN
refs #10340
refs #10367

Signed-off-by: Eric Lippmann <eric.lippmann@netways.de>
2015-10-15 12:52:17 +02:00
Johannes Meyer d6432cd881 LdapUserGroupBackend: Fix invalid query column initialization, again
I've mistakenly reverted a change from Aaron Collins that would have
prevented this issue from occuring.

fixes #10318
2015-10-09 03:53:22 +02:00
Johannes Meyer 8358f82885 LdapUserGroupBackend: Do not consider every "member" as a "user"
Not all members of a group are actual user objects. I would have liked to
actually only show real users, but this is currently not possible.

refs #9772
2015-09-29 11:29:05 +02:00
Johannes Meyer d33b1954aa LdapUserGroupBackend: Fetch the uid for a member's DN
refs #9772
2015-09-29 09:48:57 +02:00
Johannes Meyer ef1a81897b LdapUserGroupBackend: Automatically unfold the user_name attribute
refs #9772
2015-09-29 09:48:22 +02:00
Johannes Meyer b7ddb6e4c2 LdapUserGroupBackend: Register the user backend for later use
refs #9772
2015-09-29 09:44:01 +02:00
Johannes Meyer e7e3520375 LdapUserGroupBackend: Fix method getMemberships()
refs #9950
2015-09-28 10:57:17 +02:00
Johannes Meyer e5f2174c1e LdapUserGroupBackend: Restore method requireTable()
refs #9950
2015-09-25 16:24:16 +02:00
Johannes Meyer fe9ee48d65 LdapUserGroupBackend: Fix incorrect table name initialization
refs #9950
2015-09-25 16:23:13 +02:00
Johannes Meyer b19ecbfb43 LdapUserGroupBackend: Remove the remaining code duplicates
refs #9950
refs #9772
2015-09-25 16:21:33 +02:00
Aaron Collins 23631c8f39 changed order of posix check
refs #9950

Signed-off-by: Eric Lippmann <eric.lippmann@netways.de>
2015-09-25 14:35:08 +02:00
Aaron Collins 73715c94b1 Fixes for ldap group auth
The current LdapUserGroupBackend was incomplete and suffered from a little over zealous copy pasta.  It had over written certain functions that where unnecessary such as the constructor and a table validator.  This patch aims to clean those up.  Additionally it also makes this group auth work with posixGroup that use the username as the member identifier and not just inetGroups that use the full dn

refs #9950

Signed-off-by: Eric Lippmann <eric.lippmann@netways.de>
2015-09-25 14:34:33 +02:00
Matthias Jentsch b69311165c Conform to coding guidelines 2015-09-22 14:53:29 +02:00
Matthias Jentsch 42fb1a174b Do not crash when ldap_dn is defined in additional variables
refs #9950
2015-09-22 14:08:15 +02:00
Matthias Jentsch 46f2f71c57 Improve logging of membership queries
refs #9950
2015-09-22 13:02:08 +02:00
Matthias Jentsch 84554d245d Conform to coding guidelines
refs #9950
2015-09-22 12:51:00 +02:00
Jo Rhett f3df1f228d Fix for support issue 9950, do lookups properly on posixGroup group classes 2015-09-18 13:37:04 -07:00
Alexander A. Klimov 17e8f01d24 Use the DN to fetch group memberships from LDAP
fixes #9901
2015-09-18 15:34:12 +02:00
Russell Kubik 056ab0c96c Fix that DbUserBackend::inspect() reports 0 users when only one exists
refs #9739

Signed-off-by: Eric Lippmann <eric.lippmann@netways.de>
2015-09-01 23:08:24 +02:00
Eric Lippmann d2a4b880b1 Revert "Accept DbUserBackends with only one single user"
This reverts commit c8d065b3e0.

There's a PR on GitHub open that was contributed earlier than this fix. Thus giving credit to the PR's author.

refs #9739
2015-09-01 23:05:34 +02:00
Johannes Meyer 1e6c394693 Controller: Create the filter editor in setupFilterControl() ...
...instead of demanding a concrete controller to do so.
We still have to decide how to handle parameter preservation
properly.

refs #9029
2015-08-13 17:05:13 +02:00
Johannes Meyer 4b6849eea7 Repository: Introduce query column blacklists
We can no longer use $filterColumns to blacklist query columns so
there is now another set of column names required to achieve this.

refs #9029
2015-08-13 14:06:27 +02:00
Johannes Meyer 316a4d8b82 Merge branch 'master' into bugfix/allow-to-configure-how-to-manage-groups-9609 2015-07-30 16:16:04 +02:00
Eric Lippmann a234852f32 Merge branch 'feature/basic-auth-9660'
resolves #9660
2015-07-30 15:05:07 +02:00
Eric Lippmann feed927fd2 Let external auth win over session auth and session auth over http auth
refs #9660
2015-07-30 14:50:05 +02:00
Eric Lippmann 55ad2dd65f Don't fail if password contains a colon on basic auth
refs #9660
2015-07-30 13:59:47 +02:00
Eric Lippmann c594d6db33 Challenge client on invalid basic access auth credentials
refs #9660
2015-07-30 13:59:18 +02:00
Eric Lippmann 3aae37aff3 Don't redirect on external auth
refs #9660
2015-07-30 12:02:42 +02:00
Eric Lippmann 36ff2d8914 lib: Set User::$isHttpUser in Auth
refs #9660
2015-07-30 09:32:24 +02:00
Eric Lippmann cf8c680482 lib: Add basic access authentication (WIP)
refs #9660
2015-07-29 17:22:55 +02:00
Johannes Meyer fb7666e6bd LdapUserGroupBackend: Adjust usage of LdapCapabilities::hasAdOid()
Usage search ftw..
2015-07-29 16:26:39 +02:00
Eric Lippmann c3a057dbdb lib: Add AuthChain::setSkipExternalBackends() in favor of setIteratorMode()
There's only one mode.

refs #9660
2015-07-29 16:18:30 +02:00
Eric Lippmann 3ca85f9daa lib: Add Auth::getRequest()
Basic auth will require the request.

refs #9660
2015-07-29 15:56:45 +02:00
Eric Lippmann 96e3111f58 lib: Reorder functions in Auth
refs #9660
2015-07-29 15:52:56 +02:00
Eric Lippmann 37ef87b9ab lib: Fix PHPDoc in ExternalBackend
refs #9660
2015-07-29 15:46:40 +02:00
Eric Lippmann 1b5c5deace lib: Rename remote user to external user
We renamed our backend. Code now reflects this.

refs #9660
2015-07-29 15:44:32 +02:00
Johannes Meyer 3f7081296b Merge branch 'master' into bugfix/allow-to-configure-how-to-manage-groups-9609 2015-07-29 15:02:20 +02:00
Eric Lippmann ae4b7144cd lib: Implement Auth::getAuthChain()
Saves one use statement for auth chain usages.

refs #9660
2015-07-29 14:14:19 +02:00
Eric Lippmann 745e30259d lib: Implement AuthChain::authenticate()
Right now the LoginController has all the authentication which is kind of a mess. Further, the upcoming basic access authentication has to reuse this code.
Thus AuthChain::authenticate() is introduced to handle both cases.

refs #9660
2015-07-29 14:11:54 +02:00
Johannes Meyer 13edbf901d UserBackend: Implement interface ConfigAwareFactory
refs #9609
2015-07-29 13:44:26 +02:00
Johannes Meyer 83aafe8cda Allow to discover LDAP connections in the wizard as well
...
2015-07-29 09:26:53 +02:00
Eric Lippmann 4d44a0625c lib: Move UserBackendInterface::authenticate() to new interface Authenticatable
refs #9660
2015-07-29 09:25:14 +02:00
Eric Lippmann 2a4e614b5e Fix code style in AuthChain
refs #9660
2015-07-28 19:55:26 +02:00
Eric Lippmann 07849e0fea lib: Rename Authentication/Manager to Authentication/Auth
refs #9660
2015-07-28 17:08:55 +02:00
Matthias Jentsch c8d065b3e0 Accept DbUserBackends with only one single user
fixes #9739
2015-07-28 12:41:08 +02:00
Matthias Jentsch 5478027855 Bring back user count in ldap backend inspection
We already use count later in the wizard anyways.

refs #9630
2015-07-16 16:52:56 +02:00
Matthias Jentsch e357960d1e Add Inspection API to DB backend
refs #9641
2015-07-16 16:16:55 +02:00
Matthias Jentsch ffe672c252 Improve message texts and scalabillity
Always start uppercase and don't use count() function until we've got a more scalable implementation in the LdapConnection.

refs #9630
2015-07-16 13:51:26 +02:00
Matthias Jentsch 6b8e5da76d Move all assertion functions into the inspect functions
Reduce code duplication and add class Inspection

refs #9630
2015-07-16 12:21:11 +02:00
Matthias Jentsch 59c4f8d056 Use Inspection API in User Backend Form
refs #9630
2015-07-15 19:35:25 +02:00
Matthias Jentsch 3ddb8ca1bd Add abillity to discover AD version and vendor name to discovery
refs #9605
2015-07-14 18:32:44 +02:00
Johannes Meyer f5089dab1a DbUserGroupBackend: Use is_numeric() instead of is_int()
Using MySQL fetchColumn() returns integers for id fields, using MariaDB
though, fetchColumn() returns strings..

fixes #9572
2015-07-07 14:07:55 +02:00
Johannes Meyer 066b3d9e28 ApplicationConfigForm: Make preference options be global options
refs #8709
2015-07-01 15:41:45 +02:00
Johannes Meyer 3dddee8b7d Setup: Fix authentication backend validation
This is a ridiculous dirty fix. We'll definitely need to
improve how we create authentication backends...

fixes #9509
2015-06-25 14:36:51 +02:00
Johannes Meyer 3c47ef6826 Ldap\Exception: Rename to LdapException
refs #8954
2015-06-24 09:19:41 +02:00
Johannes Meyer 6d8c56a12f Ldap\Connection: Return false if nothing is found for fetchRow()
This should behave like DbConnection::fetchRow().

refs #8954
2015-06-23 10:49:51 +02:00
Johannes Meyer 15220da645 Automatically strip unnecessary parentheses from custom ldap filters
fixes #9348
2015-06-23 10:32:45 +02:00
Johannes Meyer 5688f0cb85 Allow to configure user group backends of type LDAP
refs #7343
2015-06-05 14:53:29 +02:00
Johannes Meyer cacd97fb46 LdapUserGroupBackend: Make default configuration providers public
I'd like to access these when preparing a config form.

refs #7343
2015-06-05 11:09:31 +02:00
Johannes Meyer 02d2ea682e LdapUserGroupBackend: Do not permit to link different directories
I cannot think of a valid usecase right now. In case someone got one,
revert this commit and make use of the backend itself and not only
its configuration.

refs #7343
2015-06-05 10:51:54 +02:00
Johannes Meyer 0ab192cd1f LdapUserGroupBackend: Allow to link a user backend
refs #7343
2015-06-05 10:41:47 +02:00
Johannes Meyer 127489ca20 UserBackend: Allow to only pass a backend's name 2015-06-05 10:40:47 +02:00
Johannes Meyer ee2462a6b2 LdapUserGroupBackend: Let the backend decide which defaults to use
refs #7343
2015-06-05 10:19:28 +02:00
Johannes Meyer 3fd0d99db2 LdapUserGroupBackend: Add support for custom query filters
refs #7343
2015-06-05 09:57:40 +02:00
Johannes Meyer 90d946f149 LdapUserGroupBackend: We need a datasource, actually
Forgot to add this when disabling LdapRepository inheritance...

refs #7343
2015-06-03 16:40:14 +02:00
Johannes Meyer d9eb8f9e8d LdapUserGroupBackend: Do not extend LdapRepository
Selecting groups works, but not memberships. Does not make sense
until both things work...

refs #7343
2015-06-03 16:33:22 +02:00
Johannes Meyer 89d992278b Introduce class LdapUserGroupBackend
refs #743
2015-06-03 16:27:50 +02:00
Johannes Meyer 86c63ec913 Introduce class LdapRepository
refs #7343
2015-06-03 15:28:07 +02:00
Johannes Meyer 96f5f8fd49 LdapUserBackend: Do not fetch a user's groups
refs #7343
2015-06-03 15:16:54 +02:00
Johannes Meyer e0c0e9c874 LdapUserBackend: Move function retrieveGeneralizedTime into its parent
refs #7343
2015-06-03 14:36:46 +02:00
Johannes Meyer cd0c418854 Merge branch 'master' into feature/user-and-group-management-8826 2015-06-02 10:44:13 +02:00
Johannes Meyer e936c76ca9 DbUserGroupBackend: Really clear memberships and parent relations...
...when removing a group.

refs #8826
2015-06-01 15:34:38 +02:00
Johannes Meyer 1385295e4e DbUserGroupBackend: Properly handle sequences of group names
refs #8826
2015-06-01 15:33:35 +02:00
Johannes Meyer 62fff94808 DbUserGroupBackend: Do not try to fetch a group id for null
refs #8826
2015-06-01 15:16:03 +02:00
Johannes Meyer beb5bd7370 Repository: Clone a filter implicitly in self::requireFilter($clone = true)
refs #8826
2015-06-01 15:03:08 +02:00
Johannes Meyer 601b720a03 LdapUserBackend: Fetch and interpret the correct attributes (OpenLDAP)
refs #8826
2015-06-01 14:05:44 +02:00
Johannes Meyer d1a5321d02 LdapUserBackend: Fetch and interpret the correct attributes (ActiveDirectory)
refs #8826
2015-06-01 12:23:16 +02:00
Johannes Meyer a88037f45d DbUserGroupBackend: Fetch and persist a group's id when it's name is given
refs #8826
2015-05-29 11:33:35 +02:00
Johannes Meyer bb285db05b Differentiate the source or destination of a column when converting values
refs #8826
2015-05-29 11:32:15 +02:00
Johannes Meyer 60ce78c958 DbUserGroupBackend: Adjust how to load the name of a group's parent
refs #8826
2015-05-29 08:57:49 +02:00
Johannes Meyer c94e6a3292 Db/IniUserGroupBackend: Drop column parent_name, it's not a name anymore
refs #8826
2015-05-29 08:56:58 +02:00
Johannes Meyer 32b99be8ab DbUserGroupBackend: Adjust to fit the new database schema
refs #8826
2015-05-28 15:22:15 +02:00
Alexander A. Klimov cba36ec017 Ignore the preferences' loadability during authentication
fixes #8956
2015-05-27 15:13:53 +02:00
Johannes Meyer 10b158a182 LdapUserBackend: Fix sorting when sorting by user_name
refs #8826
2015-05-21 13:53:27 +02:00
Johannes Meyer 4d79731646 DbUserBackend: Fix sorting when sorting by user_name
refs #8826
2015-05-21 13:53:18 +02:00
Johannes Meyer 9278d708d7 IniUserGroupBackend: Do not sort by parent when sorting by group_name
refs #8826
2015-05-21 13:51:24 +02:00
Johannes Meyer 6369643145 DbUserGroupBackend: Do not sort by parent when sorting by group_name
refs #8826
2015-05-21 13:51:15 +02:00
Johannes Meyer 0a387573f3 Logger: Fix substitution of exception messages 2015-05-13 10:46:34 +02:00
Johannes Meyer f93c2de6be UserGroupBackend: Disable default backend type `ini'
We're not going to support this until a proper membership implementation
exists (or is required at all).

refs #8826
2015-05-13 10:45:54 +02:00
Johannes Meyer 223ecab991 DbUserGroupBackend: Make it possible to handle memberships
refs #8826
2015-05-13 10:34:39 +02:00
Johannes Meyer 47dfcf5e1d DbUserGroupBackend: Do not use the repository abstraction internally
That's overhead which is not necessary.

refs #8826
2015-05-13 10:34:00 +02:00
Johannes Meyer 104c1c6bba DbUserBackend: Utilize Zend_Db_Select when fetching the password hash 2015-05-13 09:16:24 +02:00