Meta: clarify the project scope and goals
See original GitHub issueWith a growing number of users and contributors, we need to define clearly what the project goals are, and what we don’t plan to handle.
Current scope
As far as I’m concerned, the scope of the library is:
- Allow to use a LDAP service as a Django database backend, without Django noticing;
- Handle any form of LDAP layout that complies to the official RFCs;
- Don’t assume anything on the LDAP layout: only use standard methods and queries;
- Support all supported Python versions, the latest stable Django release, and the latest Django LTS strictly before that release.
This means that we’ll have to handle the following features:
./manage.py inspectdb
(based on the schema) => #155;- Handle arbitrary tree structures => #3;
- Support or emulate transaction support => #83.
Options to consider
I can think of a few extra options we might want to include in the future, or which could be handled in a separated library.
Server-specific extensions
We could add custom fields for specific directories, similar to django.contrib.postgres
(for instance, a field to handle an ActiveDirectory SID
or userAccountControl
).
If those fields require additional Python dependencies, we should likely move them to dedicated packages (still under the django-ldapdb
organization).
Account management helpers We could add a few helpers to be used when the Django account base is backed by the same LDAP we’re talking to. I’m not sure of the scope of that section yet; besides, this looks like the goal of the django-auth-ldap project.
Specific form fields
A LDAP supports multi-valued fields. We might want to provide a clean type of widget for such fields in the admin and other ModelForm
s.
However, getting a clean user experience for a multi-valued form field is complex; we might want to look at existing Django field libraries to reuse some.
Or maybe push those changes to a side library, since it should be compatible with any database where a field supports a collection of values.
More? Do you see other features we could add?
Issue Analytics
- State:
- Created 5 years ago
- Comments:7 (5 by maintainers)
Top GitHub Comments
Hello buddies, sorry. I had holidays.
I think, we should let
django-ldapdb
small and don’t integrate everything. I agree that ui-tool would be nice like @peppelinux mentioned, but i would do it inside a extra repo. We have already enough issues at the moment and more functionality make also more problems. So lets keep it simple.I am fine with custom fields, but please let define at first a policy for this. Otherwise we will have soon very much custom fields or a too large discussion about the next new custom field and probably more dependancies.
I want to add that we should improve our tests. Could help if we should add new features. And what is with a better documentation, e.g.
sphinx
?And how do we want develop together?
I’d suggest starting with defining template classes for the most common and relevant LDAP object classes.