source: trunk/LATMOS-Accounts/man/man8/latmos-accounts-base-sql.pod @ 1834

Last change on this file since 1834 was 1834, checked in by nanardon, 8 years ago

Allow to create pasted employment (trought config)

File size: 6.6 KB
Line 
1# $Id$
2
3=head1 DESCRIPTION
4
5=head1 SPECIFIC SETUP PARAMTERS
6
7=head2 db_conn
8
9The C<libpq> connection parameters, eg a semin colon separated paramaters
10containing the server, the database name, user and password, etc...
11
12=head2 remove_old_dpmt
13
14By default when the department is changed on a user account it remains in the
15department group as a secondary department.
16
17Setting C<remove_old_dpmt> to true in the config will force user removal from
18the group when department is changed.
19The user can still be added back later.
20
21=head1 FEATURES
22
23=head2 Network managment
24
25Link::Accounts can build automatically some part of your DNS or DHCP
26configuration.
27
28To do this you have to create a C<netzone> object. Such object need a type:
29
30=over 4
31
32=item dns: to build a DNS zone for classic domain
33
34=item reverse: for reverse IP address (168.192.in-addr.arpa)
35
36=item dhcp: ISC dscpd configuration for fixed address
37
38=item puppet: puppet configuration
39
40=back
41
42The way it works is quite simple, each zone will make the code to write a file
43you can include in your server configuration. The match is done by looking the
44zone IP address masks and the host IPs.
45
46For example someone having a zone named C<private.mydomain.com> having masks
47C<192.168.5.0/24>, and having an host named C<foo> with IP C<192.168.5.3> and
48another host C<bar> with IP C<192.168.13.78>. The zone built will look likes:
49
50    foo IN A 192.168.5.3
51
52As you can see this DNS zone is not valid: the goal of such feature is to make
53the repetive work for us, not to manage the full zone (even such feature could
54be possible). The repetitive work is declaring the hundred computers our users
55have.
56
57The output will be happend to a template have the name of the zone suffixed by
58C<.in>. You can put in this template evering about the zone declaration (SOA,
59NS, TXT...).
60
61=head2 User endcircuit
62
63The C<endcircuit> attribute contain the deadline for people to make
64admnistrative task when starting to work.
65If set this attribute take precedence to C<expire> attribute for computed
66attributes (C<accountExpires> for Active Directory).
67
68=head2 User Employment
69
70The employment object allow you to set time when you're user have a status. This
71allow through 'Employment' module for la-sync-manager to automate changes.
72
73The synchronized attributes are:
74
75=over 4
76
77=item C<company>
78
79=item C<department>
80
81=item C<contratType>
82
83=item C<managerContact>
84
85=item C<expire>
86
87=item C<endcircuit>
88
89=back
90
91To avoid error when modifying user direclty when you're using employment those
92attribute become on user's side become read-only once an employment exists.
93
94You can change this beaviour using C<employment_lock_user> parameter:
95
96By default it is impossible to modify or create past employment. This behavior
97can be changed by settings C<allow_pasted_employment> parameter in base
98configuration.
99
100=over 4
101
102=item any (default)
103
104Any existing employment lock those attribute, you must
105create another employment to change user status or delete all employements for
106this user.
107
108=item always
109
110The user's attribute are always locked
111
112=item never
113
114The user's attribute are always locked
115
116=item active
117
118Thoses attributes are locked is any employment are still active (ie unfinished
119or coming later).
120
121=item attribute=value
122
123Thoses attributes are read-only if the C<attribute> given contains C<value>,
124C<*> allow to match any value.
125
126=back
127
128When active users become out of any employment all managed attribute are unset
129(except the expire attribute).
130
131A default value for each of this attribute can be set in configuration using
132parameter in form C<unemployment.ATTRIBUTE>. For example
133C<unemployment.contratType=external> will set any C<contratType> to C<external>
134when no employment apply to user anymore.
135
136Only active accounts are modified in this way.
137
138=head3 User endEmployment
139
140This attribute compute the next day the user will leave the company according
141the employment object registered.
142
143The parameter C<employment_delay> give the number of days to ignore when a hole
144exists between two employment.
145
146If no employment are found, if set the date given in C<unemployed_expire>
147database parameter is returned.
148
149=head3 User endStrictEmployment
150
151This attribute compute the next day the user will leave the company according
152the employment object registered.
153
154It does not take C<employment_delay> parameter into account.
155
156If no employment are found, if set the date given in C<unemployed_expire>
157database parameter is returned.
158
159=head3 User endLastEmployment
160
161This attribute return the very last end of all registered employment fr this
162user.
163
164=head3 User endCurrentEmployment
165
166The end of the employment matching current date.
167
168=head3 Account Expiration
169
170When using employment, account expiration are set to match employment. By
171default the expiration is set to C<endEmployment> value.
172
173This behaviour can be changed by setting C<expireOn> parameter into base
174definition:
175
176=over 4
177
178=item any of endCurrentEmployment, endEmployment, endStrictEmployment, endLastEmployment
179
180=item never
181
182The expire date is left unchanged and must managed manually.
183
184=back
185
186=head2 Group AutoMemberFilter
187
188Group objects contains users members by setting either C<members> or
189C<memberUID> attributes.
190
191Sometimes it can be usefull to have group automatically populated by arbitrary
192rules.
193
194This is possible by setting a filter in the C<autoMemberFilter> attribute,
195The filter format is the same the one used by L<la-search>, the attribute is
196multivaluable.
197
198So for example one can create an account automatically a group containing people
199having "Olivier" as first name:
200
201    autoMemberFilter: givenBame=Olivier
202
203A probably more usefull example is a group containing people from two others
204groups:
205
206    autoMemberFilter: memberOf=group1
207    autoMemberFilter: memberOf=group2
208
209The  C<members> or C<memberUID> attribute becomes read-only attribute once
210C<autoMemberFilter> attribute is set.
211
212=head2 Aliases AutoMemberFilter
213
214This attribute allow to create automatics dynamics aliases according filter
215rules exactly like L<Group AutoMemberFilter> works.
216
217The C<forward> attributes is automatically set with email address of selected
218user, user w/o email address are ignored.
219
220=head2 Group AutoFromSutype
221
222Group object can be tagged with the C<sutype> attribute.
223
224When C<autoFromSutype> is set the group member will be computed from member of
225all groups having C<sutype> set this value.
226
227The goal of this attribute is to setup magic group like with the
228C<autoMemberFilter> but working even a new group is created.
229
230=head2 Aliases AutoFromSutype
231
232This attribute allow to create automatics dynamics aliases according filter
233rules exactly like L<Group AutoFromSutype> works.
234
235The C<forward> attributes is automatically set with email address of selected
236user, user w/o email address are ignored.
Note: See TracBrowser for help on using the repository browser.