1 | # $Id$ |
---|
2 | |
---|
3 | =head1 DESCRIPTION |
---|
4 | |
---|
5 | =head1 SPECIFIC SETUP PARAMTERS |
---|
6 | |
---|
7 | =head2 db_conn |
---|
8 | |
---|
9 | The C<libpq> connection parameters, eg a semin colon separated paramaters |
---|
10 | containing the server, the database name, user and password, etc... |
---|
11 | |
---|
12 | =head2 no_pg_utf8 |
---|
13 | |
---|
14 | If set disable utf8 flags from postgresql. You can try this parameter if you |
---|
15 | have issue with non ascii value from database |
---|
16 | |
---|
17 | =head2 remove_old_dpmt |
---|
18 | |
---|
19 | By default when the department is changed on a user account it remains in the |
---|
20 | department group as a secondary department. |
---|
21 | |
---|
22 | Setting C<remove_old_dpmt> to true in the config will force user removal from |
---|
23 | the group when department is changed. |
---|
24 | The user can still be added back later. |
---|
25 | |
---|
26 | =head1 FEATURES |
---|
27 | |
---|
28 | =head2 Object Aliases |
---|
29 | |
---|
30 | It is possible to create object being simple alias to another, like symbolic on |
---|
31 | UNIX filesystem or mail alias. |
---|
32 | |
---|
33 | Thoses aliases objects are always resolved when propagating into other base. |
---|
34 | The referenced object can be easilly change and all the data related will be |
---|
35 | propagated. |
---|
36 | |
---|
37 | Only alias for object type C<User> are supported at time. |
---|
38 | |
---|
39 | =head3 Usage Example: |
---|
40 | |
---|
41 | The typical exemple is for attribute C<manager> or attribute C<managedBy>. |
---|
42 | Instead setting them to C<John> you can create an alias C<Director> and when |
---|
43 | C<John> leave just change alias reference to C<Bill>. |
---|
44 | |
---|
45 | =head2 Network managment |
---|
46 | |
---|
47 | Link::Accounts can build automatically some part of your DNS or DHCP |
---|
48 | configuration. |
---|
49 | |
---|
50 | To do this you have to create a C<netzone> object. Such object need a type: |
---|
51 | |
---|
52 | =over 4 |
---|
53 | |
---|
54 | =item dns: to build a DNS zone for classic domain |
---|
55 | |
---|
56 | =item reverse: for reverse IP address (168.192.in-addr.arpa) |
---|
57 | |
---|
58 | =item dhcp: ISC dscpd configuration for fixed address |
---|
59 | |
---|
60 | =item puppet: puppet configuration |
---|
61 | |
---|
62 | =back |
---|
63 | |
---|
64 | The way it works is quite simple, each zone will make the code to write a file |
---|
65 | you can include in your server configuration. The match is done by looking the |
---|
66 | zone IP address masks and the host IPs. |
---|
67 | |
---|
68 | For example someone having a zone named C<private.mydomain.com> having masks |
---|
69 | C<192.168.5.0/24>, and having an host named C<foo> with IP C<192.168.5.3> and |
---|
70 | another host C<bar> with IP C<192.168.13.78>. The zone built will look likes: |
---|
71 | |
---|
72 | foo IN A 192.168.5.3 |
---|
73 | |
---|
74 | As you can see this DNS zone is not valid: the goal of such feature is to make |
---|
75 | the repetive work for us, not to manage the full zone (even such feature could |
---|
76 | be possible). The repetitive work is declaring the hundred computers our users |
---|
77 | have. |
---|
78 | |
---|
79 | The output will be happend to a template have the name of the zone suffixed by |
---|
80 | C<.in>. You can put in this template evering about the zone declaration (SOA, |
---|
81 | NS, TXT...). |
---|
82 | |
---|
83 | =head2 User endcircuit |
---|
84 | |
---|
85 | The C<endcircuit> attribute contain the deadline for people to make |
---|
86 | admnistrative task when starting to work. |
---|
87 | If set this attribute take precedence to C<expire> attribute for computed |
---|
88 | attributes (C<accountExpires> for Active Directory). |
---|
89 | |
---|
90 | =head2 User Employment |
---|
91 | |
---|
92 | The employment object allow you to set time when you're user have a status. This |
---|
93 | allow through 'Employment' module for la-sync-manager to automate changes. |
---|
94 | |
---|
95 | The synchronized attributes are: |
---|
96 | |
---|
97 | =over 4 |
---|
98 | |
---|
99 | =item C<company> |
---|
100 | |
---|
101 | =item C<employer> |
---|
102 | |
---|
103 | =item C<department> |
---|
104 | |
---|
105 | =item C<contratType> |
---|
106 | |
---|
107 | =item C<managerContact> |
---|
108 | |
---|
109 | =item C<expire> |
---|
110 | |
---|
111 | =item C<endcircuit> |
---|
112 | |
---|
113 | =back |
---|
114 | |
---|
115 | To avoid error when modifying user direclty when you're using employment those |
---|
116 | attribute become on user's side become read-only once an employment exists. |
---|
117 | |
---|
118 | You can change this beaviour using C<employment_lock_user> parameter: |
---|
119 | |
---|
120 | By default it is impossible to modify or create past employment. This behavior |
---|
121 | can be changed by settings C<allow_pasted_employment> parameter in base |
---|
122 | configuration. |
---|
123 | |
---|
124 | =over 4 |
---|
125 | |
---|
126 | =item any (default) |
---|
127 | |
---|
128 | Any existing employment lock those attribute, you must |
---|
129 | create another employment to change user status or delete all employements for |
---|
130 | this user. |
---|
131 | |
---|
132 | =item always |
---|
133 | |
---|
134 | The user's attribute are always locked |
---|
135 | |
---|
136 | =item never |
---|
137 | |
---|
138 | The user's attribute are always locked |
---|
139 | |
---|
140 | =item active |
---|
141 | |
---|
142 | Thoses attributes are locked is any employment are still active (ie unfinished |
---|
143 | or coming later). |
---|
144 | |
---|
145 | =item attribute=value |
---|
146 | |
---|
147 | Thoses attributes are read-only if the C<attribute> given contains C<value>, |
---|
148 | C<*> allow to match any value. |
---|
149 | |
---|
150 | =back |
---|
151 | |
---|
152 | When active users become out of any employment all managed attribute are unset |
---|
153 | (except the expire attribute). |
---|
154 | |
---|
155 | A default value for each of this attribute can be set in configuration using |
---|
156 | parameter in form C<unemployment.ATTRIBUTE>. For example |
---|
157 | C<unemployment.contratType=external> will set any C<contratType> to C<external> |
---|
158 | when no employment apply to user anymore. |
---|
159 | |
---|
160 | Only active accounts are modified in this way. |
---|
161 | |
---|
162 | =head3 User endEmployment |
---|
163 | |
---|
164 | This attribute compute the next day the user will leave the company according |
---|
165 | the employment object registered. |
---|
166 | |
---|
167 | The parameter C<employment_delay> give the number of days to ignore when a hole |
---|
168 | exists between two employment. |
---|
169 | |
---|
170 | If no employment are found, if set the date given in C<unemployed_expire> |
---|
171 | database parameter is returned. |
---|
172 | |
---|
173 | =head3 User endStrictEmployment |
---|
174 | |
---|
175 | This attribute compute the next day the user will leave the company according |
---|
176 | the employment object registered. |
---|
177 | |
---|
178 | It does not take C<employment_delay> parameter into account. |
---|
179 | |
---|
180 | If no employment are found, if set the date given in C<unemployed_expire> |
---|
181 | database parameter is returned. |
---|
182 | |
---|
183 | =head3 User endLastEmployment |
---|
184 | |
---|
185 | This attribute return the very last end of all registered employment fr this |
---|
186 | user. |
---|
187 | |
---|
188 | =head3 User endCurrentEmployment |
---|
189 | |
---|
190 | The end of the employment matching current date. |
---|
191 | |
---|
192 | =head3 Account Expiration |
---|
193 | |
---|
194 | When using employment, account expiration are set to match employment. By |
---|
195 | default the expiration is set to C<endEmployment> value. |
---|
196 | |
---|
197 | This behaviour can be changed by setting C<expireOn> parameter into base |
---|
198 | definition: |
---|
199 | |
---|
200 | =over 4 |
---|
201 | |
---|
202 | =item any of endCurrentEmployment, endEmployment, endStrictEmployment, endLastEmployment |
---|
203 | |
---|
204 | =item never |
---|
205 | |
---|
206 | The expire date is left unchanged and must managed manually. |
---|
207 | |
---|
208 | =back |
---|
209 | |
---|
210 | =head2 Group AutoMemberFilter |
---|
211 | |
---|
212 | Group objects contains users members by setting either C<members> or |
---|
213 | C<memberUID> attributes. |
---|
214 | |
---|
215 | Sometimes it can be usefull to have group automatically populated by arbitrary |
---|
216 | rules. |
---|
217 | |
---|
218 | This is possible by setting a filter in the C<autoMemberFilter> attribute, |
---|
219 | The filter format is the same the one used by L<la-search>, the attribute is |
---|
220 | multivaluable. |
---|
221 | |
---|
222 | So for example one can create an account automatically a group containing people |
---|
223 | having "Olivier" as first name: |
---|
224 | |
---|
225 | autoMemberFilter: givenBame=Olivier |
---|
226 | |
---|
227 | A probably more usefull example is a group containing people from two others |
---|
228 | groups: |
---|
229 | |
---|
230 | autoMemberFilter: memberOf=group1 |
---|
231 | autoMemberFilter: memberOf=group2 |
---|
232 | |
---|
233 | The C<members> or C<memberUID> attribute becomes read-only attribute once |
---|
234 | C<autoMemberFilter> attribute is set. |
---|
235 | |
---|
236 | =head2 Aliases AutoMemberFilter |
---|
237 | |
---|
238 | This attribute allow to create automatics dynamics aliases according filter |
---|
239 | rules exactly like L<Group AutoMemberFilter> works. |
---|
240 | |
---|
241 | The C<forward> attributes is automatically set with email address of selected |
---|
242 | user, user w/o email address are ignored. |
---|
243 | |
---|
244 | =head2 Group AutoFromSutype |
---|
245 | |
---|
246 | Group object can be tagged with the C<sutype> attribute. |
---|
247 | |
---|
248 | When C<autoFromSutype> is set the group member will be computed from member of |
---|
249 | all groups having C<sutype> set this value. |
---|
250 | |
---|
251 | The goal of this attribute is to setup magic group like with the |
---|
252 | C<autoMemberFilter> but working even a new group is created. |
---|
253 | |
---|
254 | =head2 Aliases AutoFromSutype |
---|
255 | |
---|
256 | This attribute allow to create automatics dynamics aliases according filter |
---|
257 | rules exactly like L<Group AutoFromSutype> works. |
---|
258 | |
---|
259 | The C<forward> attributes is automatically set with email address of selected |
---|
260 | user, user w/o email address are ignored. |
---|
261 | |
---|
262 | =head2 Statistics |
---|
263 | |
---|
264 | The application provide some statitics tools but they are only based on the |
---|
265 | current data inside the database and are unable to track delete data. |
---|
266 | |
---|
267 | To keep some mesurement you must use C<stat> objects to describe the data you |
---|
268 | want to track, and enable in L<la-sync-manager.ini> the C<Stats> module. |
---|
269 | |
---|
270 | Each attribute of C<Stat> object describe how data must but compute before being |
---|
271 | stored. |
---|
272 | |
---|
273 | =head3 Stat object Attributes |
---|
274 | |
---|
275 | =head4 description |
---|
276 | |
---|
277 | A label about this statistics object |
---|
278 | |
---|
279 | =head4 display |
---|
280 | |
---|
281 | IF set the statistic appear in the menu of the web interface |
---|
282 | |
---|
283 | =head4 otype |
---|
284 | |
---|
285 | The object type this stat is tracking, must be a supported object type |
---|
286 | |
---|
287 | =head4 filter |
---|
288 | |
---|
289 | One or multiple filter to limit the objects taking into account |
---|
290 | |
---|
291 | =head4 attribute |
---|
292 | |
---|
293 | The attribute fetch to compute data |
---|
294 | |
---|
295 | =head4 refFilter |
---|
296 | |
---|
297 | When the attribute reference another type of object this setting allow to |
---|
298 | filter to the matching referenced object. |
---|
299 | |
---|
300 | =head4 refAll |
---|
301 | |
---|
302 | When the attribute reference another type of object non exiting objects in |
---|
303 | the results appear as 0, otherwise they are ignored. |
---|
304 | |
---|
305 | =head4 |
---|
306 | |
---|
307 | =head4 aggregateFunction |
---|
308 | |
---|
309 | An optionnal operation to do on the data: |
---|
310 | |
---|
311 | =over 4 |
---|
312 | |
---|
313 | =item sum |
---|
314 | |
---|
315 | Make the sum of the result per item |
---|
316 | |
---|
317 | =item avg |
---|
318 | |
---|
319 | Make the average of the result per item |
---|
320 | |
---|
321 | =item count |
---|
322 | |
---|
323 | Count the number of item return |
---|
324 | |
---|
325 | =back |
---|
326 | |
---|
327 | =head4 delay |
---|
328 | |
---|
329 | The number of day between two run |
---|
330 | |
---|