Showing
1 changed file
with
108 additions
and
7 deletions
1 | -# LDAP-Admin | 1 | +# ldap-admin |
2 | 2 | ||
3 | -## abstract | 3 | +A tool to manage users in an LDAP dictionary or a MySQL database. |
4 | 4 | ||
5 | -Some ruby code for LDAP directory management. | 5 | +_unfinished_ |
6 | 6 | ||
7 | -## requires | 7 | +## Synopsis |
8 | 8 | ||
9 | -ruby 1.8 | 9 | +The DN's used in ``tester.rb`` are obviously not applicable for other sites. |
10 | +Additionally they do not reflect the current structure used here at | ||
11 | +**weird-web-workers.org**. | ||
10 | 12 | ||
11 | -## status | 13 | +To test anything you need to have a directory and use fitting DN's for |
14 | +testing. | ||
12 | 15 | ||
13 | -discontinued | ||
16 | +## Description | ||
17 | + | ||
18 | +### What is there | ||
19 | + | ||
20 | + * Various data-models (user, group, mailAccount, mailALias, etc.) | ||
21 | + * These might be stored in different storage backends | ||
22 | + * These storage engines are queried with different query languages. | ||
23 | + * The model specifies _which_ data is queried. | ||
24 | + * The storage engine decides _how_ the data is queried. | ||
25 | + | ||
26 | +> **Conflict**: With ldap it is difficult to separate the _which_ from the | ||
27 | +> _how_. | ||
28 | +> | ||
29 | +> **Possible solution: Some kind of factory that initializes the concrete | ||
30 | +> database by the class of the model and the class of the storage engine. | ||
31 | +> | ||
32 | +> **Alternative**: Instead of a separate factory it might be feasable to | ||
33 | +> create a generic database class with a method to create an instance by a | ||
34 | +> given model. | ||
35 | +> | ||
36 | +> **Problem**: Then the database class has to know the initialization | ||
37 | +> information for the associated model, which is an implementation detail | ||
38 | +> of the model in fact. So this information should come from somewhere else | ||
39 | +> but probably not from the model, because it probably also needs | ||
40 | +> implementation details of the database class. | ||
41 | +> | ||
42 | +> **Maybe**: it is possible to do something by nameing conventions. But it | ||
43 | +> might be cleaner to have a separate configuration file for each storage | ||
44 | +> backend in which the necessary informations for the queries of the models | ||
45 | +> can be configured. | ||
46 | + | ||
47 | +A yaml file for this might look like this: (ldap.yml) | ||
48 | + | ||
49 | + ldap: # => wenn es pro Datenbank ne eigenen datei gibt ist das nicht noetig | ||
50 | + host: host.one.virtual | ||
51 | + port: 389 | ||
52 | + queries: | ||
53 | + User: | ||
54 | + baseDn: ou=user,o=system,dc=weird-web-workers,dc=org | ||
55 | + filter: (objectClass=posixAccount) | ||
56 | + Group: | ||
57 | + baseDn: ou=group,o=system,dc=weird-web-workers,dc=org | ||
58 | + filter: (objectClass=posixGroup) | ||
59 | + | ||
60 | + ... | ||
61 | + | ||
62 | +As an alternative of a single mapping file we could create one mapping file | ||
63 | +for each mode / storage backend combination. These would be very small and | ||
64 | +fast readable. | ||
65 | + | ||
66 | +Filesystem structure: | ||
67 | + | ||
68 | + model - user.rb | ||
69 | + - group.rb | ||
70 | + - site.rb | ||
71 | + - mailalias_role.rb | ||
72 | + - mailalias_person.rb | ||
73 | + - mailaccount.rb | ||
74 | + data - ldap.rb | ||
75 | + data - config - ldap.yml | ||
76 | + adapter - ldap.rb | ||
77 | + - config - ldap - user.yml | ||
78 | + - group.yml | ||
79 | + - site.yml | ||
80 | + - mailalias_role.yml | ||
81 | + - mailalias_person.yml | ||
82 | + - mailaccount.yml | ||
83 | + | ||
84 | +## Requirements | ||
85 | + | ||
86 | + * A running test dictionary or database | ||
87 | + * Ruby | ||
88 | + | ||
89 | +## Dependencies | ||
90 | + | ||
91 | +unknown | ||
92 | + | ||
93 | +## Contributing | ||
94 | + | ||
95 | +Just email me. | ||
96 | + | ||
97 | +## License | ||
98 | + | ||
99 | + This program is free software: you can redistribute it and/or modify | ||
100 | + it under the terms of the GNU General Public License as published by | ||
101 | + the Free Software Foundation, either version 3 of the License, or | ||
102 | + (at your option) any later version. | ||
103 | + | ||
104 | + This program is distributed in the hope that it will be useful, | ||
105 | + but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
106 | + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
107 | + GNU General Public License for more details. | ||
108 | + | ||
109 | + You should have received a copy of the GNU General Public License | ||
110 | + along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
111 | + | ||
112 | +## Author | ||
113 | + | ||
114 | +Georg Hopp <georg@steffers.org> |
Please
register
or
login
to post a comment