1
1
<refentry id="libuser-user">
3
<refentrytitle>user</refentrytitle>
3
<refentrytitle id="top_of_page">user</refentrytitle>
4
4
<manvolnum>3</manvolnum>
5
5
<refmiscinfo>LIBUSER Library</refmiscinfo>
9
<refname>user</refname><refpurpose>
9
<refname>user</refname>
10
11
Functions for initializing the library, looking up information, and making
11
12
changes to the system information store.</refpurpose>
13
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
14
<refsynopsisdiv><title>Synopsis</title>
16
<refsynopsisdiv id="synopsis">
17
<title id="synopsis.title">Synopsis</title>
162
<title>Details</title>
164
<refsect1 id="details">
165
<title id="details.title">Details</title>
164
<title><anchor id="lu-start"/>lu_start ()</title>
167
<title><anchor id="lu-start" role="function"/>lu_start ()</title>
165
168
<indexterm><primary>lu_start</primary></indexterm><programlisting><link linkend="lu-context-t">lu_context_t</link>* lu_start (const <link linkend="char">char</link> *authname,
166
169
<link linkend="lu-entity-type-t">lu_entity_type_t</link> auth_type,
167
170
const <link linkend="char">char</link> *modules,
173
176
Initializes the libuser library.
174
177
</para><variablelist role="params">
175
178
<varlistentry><term><parameter>authname</parameter> :</term>
176
<listitem><simpara>suggested client name to use when connecting to servers, or <literal>NULL</literal>
179
<listitem><simpara>suggested client name to use when connecting to servers, or <link linkend="NULL:CAPS"><literal>NULL</literal></link>
177
180
</simpara></listitem></varlistentry>
178
181
<varlistentry><term><parameter>auth_type</parameter> :</term>
179
182
<listitem><simpara>whether auth_name is a user or a group
180
183
</simpara></listitem></varlistentry>
181
184
<varlistentry><term><parameter>modules</parameter> :</term>
182
185
<listitem><simpara>a list of modules to use for queries (separated by whitespace or
183
commas), or <literal>NULL</literal> to use modules specified in the config file
186
commas), or <link linkend="NULL:CAPS"><literal>NULL</literal></link> to use modules specified in the config file
184
187
</simpara></listitem></varlistentry>
185
188
<varlistentry><term><parameter>create_modules</parameter> :</term>
186
189
<listitem><simpara>a list of modules to use for entity creation (separated by
187
whitespace or commas), or <literal>NULL</literal> to use modules specified in the config file
190
whitespace or commas), or <link linkend="NULL:CAPS"><literal>NULL</literal></link> to use modules specified in the config file
188
191
</simpara></listitem></varlistentry>
189
192
<varlistentry><term><parameter>prompter</parameter> :</term>
190
193
<listitem><simpara>a function to use for getting information from the user
195
198
<varlistentry><term><parameter>error</parameter> :</term>
196
199
<listitem><simpara>filled with a <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
197
200
</simpara></listitem></varlistentry>
198
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>a context which should be freed by <link linkend="lu-end"><function>lu_end()</function></link> on success, <literal>NULL</literal> on
201
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>a context which should be freed by <link linkend="lu-end"><function>lu_end()</function></link> on success, <link linkend="NULL:CAPS"><literal>NULL</literal></link> on
202
205
</simpara></listitem></varlistentry>
203
206
</variablelist></refsect2>
205
<title><anchor id="lu-end"/>lu_end ()</title>
208
<title><anchor id="lu-end" role="function"/>lu_end ()</title>
206
209
<indexterm><primary>lu_end</primary></indexterm><programlisting><link linkend="void">void</link> lu_end (<link linkend="lu-context-t">lu_context_t</link> *context);</programlisting>
208
211
Destroys a libuser library context
214
217
</simpara></listitem></varlistentry>
215
218
</variablelist></refsect2>
217
<title><anchor id="lu-set-prompter"/>lu_set_prompter ()</title>
220
<title><anchor id="lu-set-prompter" role="function"/>lu_set_prompter ()</title>
218
221
<indexterm><primary>lu_set_prompter</primary></indexterm><programlisting><link linkend="void">void</link> lu_set_prompter (<link linkend="lu-context-t">lu_context_t</link> *context,
219
222
<link linkend="lu-prompt-fn">lu_prompt_fn</link> *prompter,
220
223
<link linkend="gpointer">gpointer</link> callback_data);</programlisting>
234
237
</simpara></listitem></varlistentry>
235
238
</variablelist></refsect2>
237
<title><anchor id="lu-get-prompter"/>lu_get_prompter ()</title>
240
<title><anchor id="lu-get-prompter" role="function"/>lu_get_prompter ()</title>
238
241
<indexterm><primary>lu_get_prompter</primary></indexterm><programlisting><link linkend="void">void</link> lu_get_prompter (<link linkend="lu-context-t">lu_context_t</link> *context,
239
242
<link linkend="lu-prompt-fn">lu_prompt_fn</link> **prompter,
240
243
<link linkend="gpointer">gpointer</link> *callback_data);</programlisting>
245
248
<listitem><simpara>a context
246
249
</simpara></listitem></varlistentry>
247
250
<varlistentry><term><parameter>prompter</parameter> :</term>
248
<listitem><simpara>if not <literal>NULL</literal>, points to a place where the current prompter function
251
<listitem><simpara>if not <link linkend="NULL:CAPS"><literal>NULL</literal></link>, points to a place where the current prompter function
250
253
</simpara></listitem></varlistentry>
251
254
<varlistentry><term><parameter>callback_data</parameter> :</term>
252
<listitem><simpara>if not <literal>NULL</literal>, points to a place where the current prompter
255
<listitem><simpara>if not <link linkend="NULL:CAPS"><literal>NULL</literal></link>, points to a place where the current prompter
253
256
function data will be stored
256
259
</simpara></listitem></varlistentry>
257
260
</variablelist></refsect2>
259
<title><anchor id="lu-set-modules"/>lu_set_modules ()</title>
262
<title><anchor id="lu-set-modules" role="function"/>lu_set_modules ()</title>
260
263
<indexterm><primary>lu_set_modules</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_set_modules (<link linkend="lu-context-t">lu_context_t</link> *context,
261
264
const <link linkend="char">char</link> *list,
262
265
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>
272
275
<varlistentry><term><parameter>error</parameter> :</term>
273
276
<listitem><simpara>filled with a <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
274
277
</simpara></listitem></varlistentry>
275
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success, <literal>FALSE</literal> on failure
278
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> on failure
278
281
</simpara></listitem></varlistentry>
279
282
</variablelist></refsect2>
281
<title><anchor id="lu-get-modules"/>lu_get_modules ()</title>
284
<title><anchor id="lu-get-modules" role="function"/>lu_get_modules ()</title>
282
285
<indexterm><primary>lu_get_modules</primary></indexterm><programlisting>const <link linkend="char">char</link>* lu_get_modules (<link linkend="lu-context-t">lu_context_t</link> *context);</programlisting>
284
287
Returns a list of modules for queries in <parameter>context</parameter>.
286
289
<varlistentry><term><parameter>context</parameter> :</term>
287
290
<listitem><simpara>a context
288
291
</simpara></listitem></varlistentry>
289
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>a list of modules separated by spaces, or <literal>NULL</literal> if the list of
292
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara>a list of modules separated by spaces, or <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the list of
290
293
modules is empty. The list should not be freed by the caller.
293
296
</simpara></listitem></varlistentry>
294
297
</variablelist></refsect2>
296
<title><anchor id="lu-uses-elevated-privileges"/>lu_uses_elevated_privileges ()</title>
299
<title><anchor id="lu-uses-elevated-privileges" role="function"/>lu_uses_elevated_privileges ()</title>
297
300
<indexterm><primary>lu_uses_elevated_privileges</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_uses_elevated_privileges (<link linkend="lu-context-t">lu_context_t</link> *context);</programlisting>
299
302
Checks if any module uses elevated privileges (e.g. modifies files that
302
305
<varlistentry><term><parameter>context</parameter> :</term>
303
306
<listitem><simpara>a context
304
307
</simpara></listitem></varlistentry>
305
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> if at least one module uses elevated privileges
308
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if at least one module uses elevated privileges
308
311
</simpara></listitem></varlistentry>
309
312
</variablelist></refsect2>
311
<title><anchor id="lu-user-lookup-name"/>lu_user_lookup_name ()</title>
314
<title><anchor id="lu-user-lookup-name" role="function"/>lu_user_lookup_name ()</title>
312
315
<indexterm><primary>lu_user_lookup_name</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_user_lookup_name (<link linkend="lu-context-t">lu_context_t</link> *context,
313
316
const <link linkend="char">char</link> *name,
314
317
struct <link linkend="lu-ent">lu_ent</link> *ent,
328
331
<varlistentry><term><parameter>error</parameter> :</term>
329
332
<listitem><simpara>filled with a <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
330
333
</simpara></listitem></varlistentry>
331
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success
334
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success
334
337
</simpara></listitem></varlistentry>
335
338
</variablelist></refsect2>
337
<title><anchor id="lu-user-lookup-id"/>lu_user_lookup_id ()</title>
340
<title><anchor id="lu-user-lookup-id" role="function"/>lu_user_lookup_id ()</title>
338
341
<indexterm><primary>lu_user_lookup_id</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_user_lookup_id (<link linkend="lu-context-t">lu_context_t</link> *context,
339
342
<link linkend="uid-t">uid_t</link> uid,
340
343
struct <link linkend="lu-ent">lu_ent</link> *ent,
354
357
<varlistentry><term><parameter>error</parameter> :</term>
355
358
<listitem><simpara>filled with a <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
356
359
</simpara></listitem></varlistentry>
357
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success
360
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success
360
363
</simpara></listitem></varlistentry>
361
364
</variablelist></refsect2>
363
<title><anchor id="lu-user-default"/>lu_user_default ()</title>
366
<title><anchor id="lu-user-default" role="function"/>lu_user_default ()</title>
364
367
<indexterm><primary>lu_user_default</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_user_default (<link linkend="lu-context-t">lu_context_t</link> *ctx,
365
368
const <link linkend="char">char</link> *name,
366
369
<link linkend="gboolean">gboolean</link> system_account,
381
384
<varlistentry><term><parameter>ent</parameter> :</term>
382
385
<listitem><simpara>an entity
383
386
</simpara></listitem></varlistentry>
384
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success
387
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success
387
390
</simpara></listitem></varlistentry>
388
391
</variablelist></refsect2>
390
<title><anchor id="lu-user-add"/>lu_user_add ()</title>
393
<title><anchor id="lu-user-add" role="function"/>lu_user_add ()</title>
391
394
<indexterm><primary>lu_user_add</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_user_add (<link linkend="lu-context-t">lu_context_t</link> *context,
392
395
struct <link linkend="lu-ent">lu_ent</link> *ent,
393
396
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>
403
406
<varlistentry><term><parameter>error</parameter> :</term>
404
407
<listitem><simpara>filled with a <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
405
408
</simpara></listitem></varlistentry>
406
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success
409
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success
409
412
</simpara></listitem></varlistentry>
410
413
</variablelist></refsect2>
412
<title><anchor id="lu-user-modify"/>lu_user_modify ()</title>
415
<title><anchor id="lu-user-modify" role="function"/>lu_user_modify ()</title>
413
416
<indexterm><primary>lu_user_modify</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_user_modify (<link linkend="lu-context-t">lu_context_t</link> *context,
414
417
struct <link linkend="lu-ent">lu_ent</link> *ent,
415
418
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>
426
429
<varlistentry><term><parameter>error</parameter> :</term>
427
430
<listitem><simpara>filled with a <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
428
431
</simpara></listitem></varlistentry>
429
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success
432
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success
432
435
</simpara></listitem></varlistentry>
433
436
</variablelist></refsect2>
435
<title><anchor id="lu-user-delete"/>lu_user_delete ()</title>
438
<title><anchor id="lu-user-delete" role="function"/>lu_user_delete ()</title>
436
439
<indexterm><primary>lu_user_delete</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_user_delete (<link linkend="lu-context-t">lu_context_t</link> *context,
437
440
struct <link linkend="lu-ent">lu_ent</link> *ent,
438
441
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>
448
451
<varlistentry><term><parameter>error</parameter> :</term>
449
452
<listitem><simpara>filled with a <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
450
453
</simpara></listitem></varlistentry>
451
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success
454
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success
454
457
</simpara></listitem></varlistentry>
455
458
</variablelist></refsect2>
457
<title><anchor id="lu-user-setpass"/>lu_user_setpass ()</title>
460
<title><anchor id="lu-user-setpass" role="function"/>lu_user_setpass ()</title>
458
461
<indexterm><primary>lu_user_setpass</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_user_setpass (<link linkend="lu-context-t">lu_context_t</link> *context,
459
462
struct <link linkend="lu-ent">lu_ent</link> *ent,
460
463
const <link linkend="char">char</link> *newpass,
479
482
<varlistentry><term><parameter>error</parameter> :</term>
480
483
<listitem><simpara>filled with an <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
481
484
</simpara></listitem></varlistentry>
482
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success
485
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success
485
488
</simpara></listitem></varlistentry>
486
489
</variablelist></refsect2>
488
<title><anchor id="lu-user-removepass"/>lu_user_removepass ()</title>
491
<title><anchor id="lu-user-removepass" role="function"/>lu_user_removepass ()</title>
489
492
<indexterm><primary>lu_user_removepass</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_user_removepass (<link linkend="lu-context-t">lu_context_t</link> *context,
490
493
struct <link linkend="lu-ent">lu_ent</link> *ent,
491
494
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>
502
505
<varlistentry><term><parameter>error</parameter> :</term>
503
506
<listitem><simpara>filled with an <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
504
507
</simpara></listitem></varlistentry>
505
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success
508
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success
508
511
</simpara></listitem></varlistentry>
509
512
</variablelist></refsect2>
511
<title><anchor id="lu-user-lock"/>lu_user_lock ()</title>
514
<title><anchor id="lu-user-lock" role="function"/>lu_user_lock ()</title>
512
515
<indexterm><primary>lu_user_lock</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_user_lock (<link linkend="lu-context-t">lu_context_t</link> *context,
513
516
struct <link linkend="lu-ent">lu_ent</link> *ent,
514
517
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>
525
528
<varlistentry><term><parameter>error</parameter> :</term>
526
529
<listitem><simpara>filled with a <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
527
530
</simpara></listitem></varlistentry>
528
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success
531
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success
531
534
</simpara></listitem></varlistentry>
532
535
</variablelist></refsect2>
534
<title><anchor id="lu-user-unlock"/>lu_user_unlock ()</title>
537
<title><anchor id="lu-user-unlock" role="function"/>lu_user_unlock ()</title>
535
538
<indexterm><primary>lu_user_unlock</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_user_unlock (<link linkend="lu-context-t">lu_context_t</link> *context,
536
539
struct <link linkend="lu-ent">lu_ent</link> *ent,
537
540
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>
548
551
<varlistentry><term><parameter>error</parameter> :</term>
549
552
<listitem><simpara>filled with a <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
550
553
</simpara></listitem></varlistentry>
551
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success
554
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success
554
557
</simpara></listitem></varlistentry>
555
558
</variablelist></refsect2>
557
<title><anchor id="lu-user-unlock-nonempty"/>lu_user_unlock_nonempty ()</title>
560
<title><anchor id="lu-user-unlock-nonempty" role="function"/>lu_user_unlock_nonempty ()</title>
558
561
<indexterm><primary>lu_user_unlock_nonempty</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_user_unlock_nonempty (<link linkend="lu-context-t">lu_context_t</link> *context,
559
562
struct <link linkend="lu-ent">lu_ent</link> *ent,
560
563
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>
562
565
Unlocks an user account. If unlocking the account would result in an empty
563
password field, it fails with <literal>lu_error_unlock_empty</literal>. Note that the
566
password field, it fails with <link linkend="lu-error-unlock-empty"><literal>lu_error_unlock_empty</literal></link>. Note that the
564
567
password can still be empty.
565
568
</para><variablelist role="params">
566
569
<varlistentry><term><parameter>context</parameter> :</term>
573
576
<varlistentry><term><parameter>error</parameter> :</term>
574
577
<listitem><simpara>filled with a <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
575
578
</simpara></listitem></varlistentry>
576
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success
579
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success
579
582
</simpara></listitem></varlistentry>
580
583
</variablelist></refsect2>
582
<title><anchor id="lu-user-islocked"/>lu_user_islocked ()</title>
585
<title><anchor id="lu-user-islocked" role="function"/>lu_user_islocked ()</title>
583
586
<indexterm><primary>lu_user_islocked</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_user_islocked (<link linkend="lu-context-t">lu_context_t</link> *context,
584
587
struct <link linkend="lu-ent">lu_ent</link> *ent,
585
588
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>
595
598
<varlistentry><term><parameter>error</parameter> :</term>
596
599
<listitem><simpara>filled with a <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
597
600
</simpara></listitem></varlistentry>
598
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> if the account is locked in at least one module
601
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the account is locked in at least one module
601
604
</simpara></listitem></varlistentry>
602
605
</variablelist></refsect2>
604
<title><anchor id="lu-users-enumerate"/>lu_users_enumerate ()</title>
607
<title><anchor id="lu-users-enumerate" role="function"/>lu_users_enumerate ()</title>
605
608
<indexterm><primary>lu_users_enumerate</primary></indexterm><programlisting><link linkend="GValueArray">GValueArray</link>* lu_users_enumerate (<link linkend="lu-context-t">lu_context_t</link> *context,
606
609
const <link linkend="char">char</link> *pattern,
607
610
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>
624
627
</simpara></listitem></varlistentry>
625
628
</variablelist></refsect2>
627
<title><anchor id="lu-users-enumerate-by-group"/>lu_users_enumerate_by_group ()</title>
630
<title><anchor id="lu-users-enumerate-by-group" role="function"/>lu_users_enumerate_by_group ()</title>
628
631
<indexterm><primary>lu_users_enumerate_by_group</primary></indexterm><programlisting><link linkend="GValueArray">GValueArray</link>* lu_users_enumerate_by_group (<link linkend="lu-context-t">lu_context_t</link> *context,
629
632
const <link linkend="char">char</link> *group,
630
633
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>
647
650
</simpara></listitem></varlistentry>
648
651
</variablelist></refsect2>
650
<title><anchor id="lu-users-enumerate-full"/>lu_users_enumerate_full ()</title>
653
<title><anchor id="lu-users-enumerate-full" role="function"/>lu_users_enumerate_full ()</title>
651
654
<indexterm><primary>lu_users_enumerate_full</primary></indexterm><programlisting><link linkend="GPtrArray">GPtrArray</link>* lu_users_enumerate_full (<link linkend="lu-context-t">lu_context_t</link> *context,
652
655
const <link linkend="char">char</link> *pattern,
653
656
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>
670
673
</simpara></listitem></varlistentry>
671
674
</variablelist></refsect2>
673
<title><anchor id="lu-group-lookup-name"/>lu_group_lookup_name ()</title>
676
<title><anchor id="lu-group-lookup-name" role="function"/>lu_group_lookup_name ()</title>
674
677
<indexterm><primary>lu_group_lookup_name</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_group_lookup_name (<link linkend="lu-context-t">lu_context_t</link> *context,
675
678
const <link linkend="char">char</link> *name,
676
679
struct <link linkend="lu-ent">lu_ent</link> *ent,
690
693
<varlistentry><term><parameter>error</parameter> :</term>
691
694
<listitem><simpara>filled with a <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
692
695
</simpara></listitem></varlistentry>
693
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success
696
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success
696
699
</simpara></listitem></varlistentry>
697
700
</variablelist></refsect2>
699
<title><anchor id="lu-group-lookup-id"/>lu_group_lookup_id ()</title>
702
<title><anchor id="lu-group-lookup-id" role="function"/>lu_group_lookup_id ()</title>
700
703
<indexterm><primary>lu_group_lookup_id</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_group_lookup_id (<link linkend="lu-context-t">lu_context_t</link> *context,
701
704
<link linkend="gid-t">gid_t</link> gid,
702
705
struct <link linkend="lu-ent">lu_ent</link> *ent,
716
719
<varlistentry><term><parameter>error</parameter> :</term>
717
720
<listitem><simpara>filled with a <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
718
721
</simpara></listitem></varlistentry>
719
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success
722
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success
722
725
</simpara></listitem></varlistentry>
723
726
</variablelist></refsect2>
725
<title><anchor id="lu-group-default"/>lu_group_default ()</title>
728
<title><anchor id="lu-group-default" role="function"/>lu_group_default ()</title>
726
729
<indexterm><primary>lu_group_default</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_group_default (<link linkend="lu-context-t">lu_context_t</link> *ctx,
727
730
const <link linkend="char">char</link> *name,
728
731
<link linkend="gboolean">gboolean</link> system_account,
743
746
<varlistentry><term><parameter>ent</parameter> :</term>
744
747
<listitem><simpara>an entity
745
748
</simpara></listitem></varlistentry>
746
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success
749
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success
749
752
</simpara></listitem></varlistentry>
750
753
</variablelist></refsect2>
752
<title><anchor id="lu-group-add"/>lu_group_add ()</title>
755
<title><anchor id="lu-group-add" role="function"/>lu_group_add ()</title>
753
756
<indexterm><primary>lu_group_add</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_group_add (<link linkend="lu-context-t">lu_context_t</link> *context,
754
757
struct <link linkend="lu-ent">lu_ent</link> *ent,
755
758
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>
765
768
<varlistentry><term><parameter>error</parameter> :</term>
766
769
<listitem><simpara>filled with a <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
767
770
</simpara></listitem></varlistentry>
768
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success
771
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success
771
774
</simpara></listitem></varlistentry>
772
775
</variablelist></refsect2>
774
<title><anchor id="lu-group-modify"/>lu_group_modify ()</title>
777
<title><anchor id="lu-group-modify" role="function"/>lu_group_modify ()</title>
775
778
<indexterm><primary>lu_group_modify</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_group_modify (<link linkend="lu-context-t">lu_context_t</link> *context,
776
779
struct <link linkend="lu-ent">lu_ent</link> *ent,
777
780
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>
788
791
<varlistentry><term><parameter>error</parameter> :</term>
789
792
<listitem><simpara>filled with a <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
790
793
</simpara></listitem></varlistentry>
791
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success
794
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success
794
797
</simpara></listitem></varlistentry>
795
798
</variablelist></refsect2>
797
<title><anchor id="lu-group-delete"/>lu_group_delete ()</title>
800
<title><anchor id="lu-group-delete" role="function"/>lu_group_delete ()</title>
798
801
<indexterm><primary>lu_group_delete</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_group_delete (<link linkend="lu-context-t">lu_context_t</link> *context,
799
802
struct <link linkend="lu-ent">lu_ent</link> *ent,
800
803
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>
810
813
<varlistentry><term><parameter>error</parameter> :</term>
811
814
<listitem><simpara>filled with a <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
812
815
</simpara></listitem></varlistentry>
813
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success
816
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success
816
819
</simpara></listitem></varlistentry>
817
820
</variablelist></refsect2>
819
<title><anchor id="lu-group-setpass"/>lu_group_setpass ()</title>
822
<title><anchor id="lu-group-setpass" role="function"/>lu_group_setpass ()</title>
820
823
<indexterm><primary>lu_group_setpass</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_group_setpass (<link linkend="lu-context-t">lu_context_t</link> *context,
821
824
struct <link linkend="lu-ent">lu_ent</link> *ent,
822
825
const <link linkend="char">char</link> *newpass,
841
844
<varlistentry><term><parameter>error</parameter> :</term>
842
845
<listitem><simpara>filled with an <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
843
846
</simpara></listitem></varlistentry>
844
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success
847
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success
847
850
</simpara></listitem></varlistentry>
848
851
</variablelist></refsect2>
850
<title><anchor id="lu-group-removepass"/>lu_group_removepass ()</title>
853
<title><anchor id="lu-group-removepass" role="function"/>lu_group_removepass ()</title>
851
854
<indexterm><primary>lu_group_removepass</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_group_removepass (<link linkend="lu-context-t">lu_context_t</link> *context,
852
855
struct <link linkend="lu-ent">lu_ent</link> *ent,
853
856
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>
864
867
<varlistentry><term><parameter>error</parameter> :</term>
865
868
<listitem><simpara>filled with in <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
866
869
</simpara></listitem></varlistentry>
867
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success
870
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success
870
873
</simpara></listitem></varlistentry>
871
874
</variablelist></refsect2>
873
<title><anchor id="lu-group-lock"/>lu_group_lock ()</title>
876
<title><anchor id="lu-group-lock" role="function"/>lu_group_lock ()</title>
874
877
<indexterm><primary>lu_group_lock</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_group_lock (<link linkend="lu-context-t">lu_context_t</link> *context,
875
878
struct <link linkend="lu-ent">lu_ent</link> *ent,
876
879
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>
887
890
<varlistentry><term><parameter>error</parameter> :</term>
888
891
<listitem><simpara>filled with a <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
889
892
</simpara></listitem></varlistentry>
890
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success
893
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success
893
896
</simpara></listitem></varlistentry>
894
897
</variablelist></refsect2>
896
<title><anchor id="lu-group-unlock"/>lu_group_unlock ()</title>
899
<title><anchor id="lu-group-unlock" role="function"/>lu_group_unlock ()</title>
897
900
<indexterm><primary>lu_group_unlock</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_group_unlock (<link linkend="lu-context-t">lu_context_t</link> *context,
898
901
struct <link linkend="lu-ent">lu_ent</link> *ent,
899
902
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>
910
913
<varlistentry><term><parameter>error</parameter> :</term>
911
914
<listitem><simpara>filled with a <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
912
915
</simpara></listitem></varlistentry>
913
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success
916
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success
916
919
</simpara></listitem></varlistentry>
917
920
</variablelist></refsect2>
919
<title><anchor id="lu-group-unlock-nonempty"/>lu_group_unlock_nonempty ()</title>
922
<title><anchor id="lu-group-unlock-nonempty" role="function"/>lu_group_unlock_nonempty ()</title>
920
923
<indexterm><primary>lu_group_unlock_nonempty</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_group_unlock_nonempty (<link linkend="lu-context-t">lu_context_t</link> *context,
921
924
struct <link linkend="lu-ent">lu_ent</link> *ent,
922
925
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>
924
927
Unlocks a group account. If unlocking the account would result in an empty
925
password field, it fails with <literal>lu_error_unlock_empty</literal>. Note that the
928
password field, it fails with <link linkend="lu-error-unlock-empty"><literal>lu_error_unlock_empty</literal></link>. Note that the
926
929
password can still be empty.
927
930
</para><variablelist role="params">
928
931
<varlistentry><term><parameter>context</parameter> :</term>
935
938
<varlistentry><term><parameter>error</parameter> :</term>
936
939
<listitem><simpara>filled with a <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
937
940
</simpara></listitem></varlistentry>
938
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> on success
941
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> on success
941
944
</simpara></listitem></varlistentry>
942
945
</variablelist></refsect2>
944
<title><anchor id="lu-group-islocked"/>lu_group_islocked ()</title>
947
<title><anchor id="lu-group-islocked" role="function"/>lu_group_islocked ()</title>
945
948
<indexterm><primary>lu_group_islocked</primary></indexterm><programlisting><link linkend="gboolean">gboolean</link> lu_group_islocked (<link linkend="lu-context-t">lu_context_t</link> *context,
946
949
struct <link linkend="lu-ent">lu_ent</link> *ent,
947
950
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>
957
960
<varlistentry><term><parameter>error</parameter> :</term>
958
961
<listitem><simpara>filled with a <link linkend="lu-error"><type>lu_error</type></link> if an error occurs
959
962
</simpara></listitem></varlistentry>
960
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><literal>TRUE</literal> if the account is locked in at least one module
963
<varlistentry><term><emphasis>Returns</emphasis> :</term><listitem><simpara><link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if the account is locked in at least one module
963
966
</simpara></listitem></varlistentry>
964
967
</variablelist></refsect2>
966
<title><anchor id="lu-groups-enumerate"/>lu_groups_enumerate ()</title>
969
<title><anchor id="lu-groups-enumerate" role="function"/>lu_groups_enumerate ()</title>
967
970
<indexterm><primary>lu_groups_enumerate</primary></indexterm><programlisting><link linkend="GValueArray">GValueArray</link>* lu_groups_enumerate (<link linkend="lu-context-t">lu_context_t</link> *context,
968
971
const <link linkend="char">char</link> *pattern,
969
972
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>
986
989
</simpara></listitem></varlistentry>
987
990
</variablelist></refsect2>
989
<title><anchor id="lu-groups-enumerate-by-user"/>lu_groups_enumerate_by_user ()</title>
992
<title><anchor id="lu-groups-enumerate-by-user" role="function"/>lu_groups_enumerate_by_user ()</title>
990
993
<indexterm><primary>lu_groups_enumerate_by_user</primary></indexterm><programlisting><link linkend="GValueArray">GValueArray</link>* lu_groups_enumerate_by_user (<link linkend="lu-context-t">lu_context_t</link> *context,
991
994
const <link linkend="char">char</link> *user,
992
995
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>
1009
1012
</simpara></listitem></varlistentry>
1010
1013
</variablelist></refsect2>
1012
<title><anchor id="lu-groups-enumerate-full"/>lu_groups_enumerate_full ()</title>
1015
<title><anchor id="lu-groups-enumerate-full" role="function"/>lu_groups_enumerate_full ()</title>
1013
1016
<indexterm><primary>lu_groups_enumerate_full</primary></indexterm><programlisting><link linkend="GPtrArray">GPtrArray</link>* lu_groups_enumerate_full (<link linkend="lu-context-t">lu_context_t</link> *context,
1014
1017
const <link linkend="char">char</link> *pattern,
1015
1018
<link linkend="lu-error-t">lu_error_t</link> **error);</programlisting>