1 changed files with 108 additions and 7 deletions
-
115README.md
@ -1,13 +1,114 @@ |
|||
# LDAP-Admin |
|||
# ldap-admin |
|||
|
|||
## abstract |
|||
A tool to manage users in an LDAP dictionary or a MySQL database. |
|||
|
|||
Some ruby code for LDAP directory management. |
|||
_unfinished_ |
|||
|
|||
## requires |
|||
## Synopsis |
|||
|
|||
ruby 1.8 |
|||
The DN's used in ``tester.rb`` are obviously not applicable for other sites. |
|||
Additionally they do not reflect the current structure used here at |
|||
**weird-web-workers.org**. |
|||
|
|||
## status |
|||
To test anything you need to have a directory and use fitting DN's for |
|||
testing. |
|||
|
|||
discontinued |
|||
## Description |
|||
|
|||
### What is there |
|||
|
|||
* Various data-models (user, group, mailAccount, mailALias, etc.) |
|||
* These might be stored in different storage backends |
|||
* These storage engines are queried with different query languages. |
|||
* The model specifies _which_ data is queried. |
|||
* The storage engine decides _how_ the data is queried. |
|||
|
|||
> **Conflict**: With ldap it is difficult to separate the _which_ from the |
|||
> _how_. |
|||
> |
|||
> **Possible solution: Some kind of factory that initializes the concrete |
|||
> database by the class of the model and the class of the storage engine. |
|||
> |
|||
> **Alternative**: Instead of a separate factory it might be feasable to |
|||
> create a generic database class with a method to create an instance by a |
|||
> given model. |
|||
> |
|||
> **Problem**: Then the database class has to know the initialization |
|||
> information for the associated model, which is an implementation detail |
|||
> of the model in fact. So this information should come from somewhere else |
|||
> but probably not from the model, because it probably also needs |
|||
> implementation details of the database class. |
|||
> |
|||
> **Maybe**: it is possible to do something by nameing conventions. But it |
|||
> might be cleaner to have a separate configuration file for each storage |
|||
> backend in which the necessary informations for the queries of the models |
|||
> can be configured. |
|||
|
|||
A yaml file for this might look like this: (ldap.yml) |
|||
|
|||
ldap: # => wenn es pro Datenbank ne eigenen datei gibt ist das nicht noetig |
|||
host: host.one.virtual |
|||
port: 389 |
|||
queries: |
|||
User: |
|||
baseDn: ou=user,o=system,dc=weird-web-workers,dc=org |
|||
filter: (objectClass=posixAccount) |
|||
Group: |
|||
baseDn: ou=group,o=system,dc=weird-web-workers,dc=org |
|||
filter: (objectClass=posixGroup) |
|||
|
|||
... |
|||
|
|||
As an alternative of a single mapping file we could create one mapping file |
|||
for each mode / storage backend combination. These would be very small and |
|||
fast readable. |
|||
|
|||
Filesystem structure: |
|||
|
|||
model - user.rb |
|||
- group.rb |
|||
- site.rb |
|||
- mailalias_role.rb |
|||
- mailalias_person.rb |
|||
- mailaccount.rb |
|||
data - ldap.rb |
|||
data - config - ldap.yml |
|||
adapter - ldap.rb |
|||
- config - ldap - user.yml |
|||
- group.yml |
|||
- site.yml |
|||
- mailalias_role.yml |
|||
- mailalias_person.yml |
|||
- mailaccount.yml |
|||
|
|||
## Requirements |
|||
|
|||
* A running test dictionary or database |
|||
* Ruby |
|||
|
|||
## Dependencies |
|||
|
|||
unknown |
|||
|
|||
## Contributing |
|||
|
|||
Just email me. |
|||
|
|||
## License |
|||
|
|||
This program is free software: you can redistribute it and/or modify |
|||
it under the terms of the GNU General Public License as published by |
|||
the Free Software Foundation, either version 3 of the License, or |
|||
(at your option) any later version. |
|||
|
|||
This program is distributed in the hope that it will be useful, |
|||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
GNU General Public License for more details. |
|||
|
|||
You should have received a copy of the GNU General Public License |
|||
along with this program. If not, see <http://www.gnu.org/licenses/>. |
|||
|
|||
## Author |
|||
|
|||
Georg Hopp <georg@steffers.org> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue