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

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

Add autoFromSutype attribute: merge group member

File size: 6.5 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
96=over 4
97
98=item any (default)
99
100Any existing employment lock those attribute, you must
101create another employment to change user status or delete all employements for
102this user.
103
104=item always
105
106The user's attribute are always locked
107
108=item never
109
110The user's attribute are always locked
111
112=item active
113
114Thoses attributes are locked is any employment are still active (ie unfinished
115or coming later).
116
117=item attribute=value
118
119Thoses attributes are read-only if the C<attribute> given contains C<value>,
120C<*> allow to match any value.
121
122=back
123
124When active users become out of any employment all managed attribute are unset
125(except the expire attribute).
126
127A default value for each of this attribute can be set in configuration using
128parameter in form C<unemployment.ATTRIBUTE>. For example
129C<unemployment.contratType=external> will set any C<contratType> to C<external>
130when no employment apply to user anymore.
131
132Only active accounts are modified in this way.
133
134=head3 User endEmployment
135
136This attribute compute the next day the user will leave the company according
137the employment object registered.
138
139The parameter C<employment_delay> give the number of days to ignore when a hole
140exists between two employment.
141
142If no employment are found, if set the date given in C<unemployed_expire>
143database parameter is returned.
144
145=head3 User endStrictEmployment
146
147This attribute compute the next day the user will leave the company according
148the employment object registered.
149
150It does not take C<employment_delay> parameter into account.
151
152If no employment are found, if set the date given in C<unemployed_expire>
153database parameter is returned.
154
155=head3 User endLastEmployment
156
157This attribute return the very last end of all registered employment fr this
158user.
159
160=head3 User endCurrentEmployment
161
162The end of the employment matching current date.
163
164=head3 Account Expiration
165
166When using employment, account expiration are set to match employment. By
167default the expiration is set to C<endEmployment> value.
168
169This behaviour can be changed by setting C<expireOn> parameter into base
170definition:
171
172=over 4
173
174=item any of endCurrentEmployment, endEmployment, endStrictEmployment, endLastEmployment
175
176=item never
177
178The expire date is left unchanged and must managed manually.
179
180=back
181
182=head2 Group AutoMemberFilter
183
184Group objects contains users members by setting either C<members> or
185C<memberUID> attributes.
186
187Sometimes it can be usefull to have group automatically populated by arbitrary
188rules.
189
190This is possible by setting a filter in the C<autoMemberFilter> attribute,
191The filter format is the same the one used by L<la-search>, the attribute is
192multivaluable.
193
194So for example one can create an account automatically a group containing people
195having "Olivier" as first name:
196
197    autoMemberFilter: givenBame=Olivier
198
199A probably more usefull example is a group containing people from two others
200groups:
201
202    autoMemberFilter: memberOf=group1
203    autoMemberFilter: memberOf=group2
204
205The  C<members> or C<memberUID> attribute becomes read-only attribute once
206C<autoMemberFilter> attribute is set.
207
208=head2 Aliases AutoMemberFilter
209
210This attribute allow to create automatics dynamics aliases according filter
211rules exactly like L<Group AutoMemberFilter> works.
212
213The C<forward> attributes is automatically set with email address of selected
214user, user w/o email address are ignored.
215
216=head2 Group AutoFromSutype
217
218Group object can be tagged with the C<sutype> attribute.
219
220When C<autoFromSutype> is set the group member will be computed from member of
221all groups having C<sutype> set this value.
222
223The goal of this attribute is to setup magic group like with the
224C<autoMemberFilter> but working even a new group is created.
225
226=head2 Aliases AutoFromSutype
227
228This attribute allow to create automatics dynamics aliases according filter
229rules exactly like L<Group AutoFromType> works.
230
231The C<forward> attributes is automatically set with email address of selected
232user, user w/o email address are ignored.
Note: See TracBrowser for help on using the repository browser.