## ActUserManager ActUserManager — manages ActUser objects |

## Synopsis

    #define             ACT_USER_MANAGER_ERROR
    struct              ActUserManager;
    enum                ActUserManagerError;
    gboolean            act_user_manager_activate_user_session
                                                            (ActUserManager *manager,
                                                             ActUser *user);
    ActUser *           act_user_manager_cache_user         (ActUserManager *manager,
                                                             const char *username,
                                                             GError **error);
    void                act_user_manager_cache_user_async   (ActUserManager *manager,
                                                             const gchar *username,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    ActUser *           act_user_manager_cache_user_finish  (ActUserManager *manager,
                                                             GAsyncResult *result,
                                                             GError **error);
    gboolean            act_user_manager_can_switch         (ActUserManager *manager);
    ActUser *           act_user_manager_create_user        (ActUserManager *manager,
                                                             const char *username,
                                                             const char *fullname,
                                                             ActUserAccountType accounttype,
                                                             GError **error);
    void                act_user_manager_create_user_async  (ActUserManager *manager,
                                                             const gchar *username,
                                                             const gchar *fullname,
                                                             ActUserAccountType accounttype,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    ActUser *           act_user_manager_create_user_finish (ActUserManager *manager,
                                                             GAsyncResult *result,
                                                             GError **error);
    gboolean            act_user_manager_delete_user        (ActUserManager *manager,
                                                             ActUser *user,
                                                             gboolean remove_files,
                                                             GError **error);
    void                act_user_manager_delete_user_async  (ActUserManager *manager,
                                                             ActUser *user,
                                                             gboolean remove_files,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    gboolean            act_user_manager_delete_user_finish (ActUserManager *manager,
                                                             GAsyncResult *result,
                                                             GError **error);
    ActUserManager *    act_user_manager_get_default        (void);
    ActUser *           act_user_manager_get_user           (ActUserManager *manager,
                                                             const char *username);
    ActUser *           act_user_manager_get_user_by_id     (ActUserManager *manager,
                                                             uid_t id);
    gboolean            act_user_manager_goto_login_session (ActUserManager *manager);
    GSList *            act_user_manager_list_users         (ActUserManager *manager);
    gboolean            act_user_manager_no_service         (ActUserManager *manager);
    gboolean            act_user_manager_uncache_user       (ActUserManager *manager,
                                                             const char *username,
                                                             GError **error);

## Object Hierarchy

      GObject
       +----ActUserManager

## Properties

      "exclude-usernames-list"   gpointer              : Read / Write
      "has-multiple-users"       gboolean              : Read
      "include-usernames-list"   gpointer              : Read / Write
      "is-loaded"                gboolean              : Read

## Signals

      "user-added"                                     : Run Last
      "user-changed"                                   : Run Last
      "user-is-logged-in-changed"                      : Run Last
      "user-removed"                                   : Run Last

## Description

ActUserManager is a manager object that gives access to user creation, deletion, enumeration, etc.

There is typically a singleton ActUserManager object, which can be obtained by `act_user_manager_get_default()`.

## Details

### ACT_USER_MANAGER_ERROR

    #define             ACT_USER_MANAGER_ERROR

The GError domain for ActUserManagerError errors

### struct ActUserManager

    struct ActUserManager;

A user manager object.

### enum ActUserManagerError

    typedef enum {
            ACT_USER_MANAGER_ERROR_FAILED,
            ACT_USER_MANAGER_ERROR_USER_EXISTS,
            ACT_USER_MANAGER_ERROR_USER_DOES_NOT_EXIST,
            ACT_USER_MANAGER_ERROR_PERMISSION_DENIED,
            ACT_USER_MANAGER_ERROR_NOT_SUPPORTED
    } ActUserManagerError;

Various error codes returned by the accounts service.

`ACT_USER_MANAGER_ERROR_FAILED` | Generic failure
`ACT_USER_MANAGER_ERROR_USER_EXISTS` | The user already exists
`ACT_USER_MANAGER_ERROR_USER_DOES_NOT_EXIST` | The user does not exist
`ACT_USER_MANAGER_ERROR_PERMISSION_DENIED` | Permission denied
`ACT_USER_MANAGER_ERROR_NOT_SUPPORTED` | Operation not supported

### act_user_manager_activate_user_session ()

    gboolean            act_user_manager_activate_user_session
                                                            (ActUserManager *manager,
                                                             ActUser *user);

Activate the session for a given user.

`manager` : | the user manager
`user` : | the user to activate
Returns : | whether successfully activated

### act_user_manager_cache_user ()

    ActUser *           act_user_manager_cache_user         (ActUserManager *manager,
                                                             const char *username,
                                                             GError **error);

### act_user_manager_cache_user_async ()

    void                act_user_manager_cache_user_async   (ActUserManager *manager,
                                                             const gchar *username,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Since 0.6.27

### act_user_manager_cache_user_finish ()

    ActUser *           act_user_manager_cache_user_finish  (ActUserManager *manager,
                                                             GAsyncResult *result,
                                                             GError **error);

Since 0.6.27

### act_user_manager_can_switch ()

    gboolean            act_user_manager_can_switch         (ActUserManager *manager);

Check whether the user can switch to another session.

`manager` : | the user manager
Returns : | whether we can switch to another session

### act_user_manager_create_user ()

    ActUser *           act_user_manager_create_user        (ActUserManager *manager,
                                                             const char *username,
                                                             const char *fullname,
                                                             ActUserAccountType accounttype,
                                                             GError **error);

Creates a user account on the system.

`manager` : | a ActUserManager
`username` : | a unix user name
`fullname` : | a unix GECOS value
`accounttype` : | a ActUserAccountType
`error` : | a GError
Returns : | user object. [transfer full]

### act_user_manager_create_user_async ()

    void                act_user_manager_create_user_async  (ActUserManager *manager,
                                                             const gchar *username,
                                                             const gchar *fullname,
                                                             ActUserAccountType accounttype,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Since 0.6.27

### act_user_manager_create_user_finish ()

    ActUser *           act_user_manager_create_user_finish (ActUserManager *manager,
                                                             GAsyncResult *result,
                                                             GError **error);

Since 0.6.27

### act_user_manager_delete_user ()

    gboolean            act_user_manager_delete_user        (ActUserManager *manager,
                                                             ActUser *user,
                                                             gboolean remove_files,
                                                             GError **error);

Deletes a user account on the system.

`manager` : | a ActUserManager
`user` : | an ActUser object
`remove_files` : | `TRUE` to delete the users home directory
`error` : | a GError
Returns : | `TRUE` if the user account was successfully deleted

### act_user_manager_delete_user_async ()

    void                act_user_manager_delete_user_async  (ActUserManager *manager,
                                                             ActUser *user,
                                                             gboolean remove_files,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Since 0.6.27

### act_user_manager_delete_user_finish ()

    gboolean            act_user_manager_delete_user_finish (ActUserManager *manager,
                                                             GAsyncResult *result,
                                                             GError **error);

Since 0.6.27

### act_user_manager_get_default ()

    ActUserManager *    act_user_manager_get_default        (void);

Returns the user manager singleton instance. Calling this function will automatically being loading the user list if it isn't loaded already. The "is-loaded" property will be set to `TRUE` when the users are finished loading and then `act_user_manager_list_users()` can be called.

Returns : | user manager object. [transfer none]

### act_user_manager_get_user ()

    ActUser *           act_user_manager_get_user           (ActUserManager *manager,
                                                             const char *username);

Retrieves a pointer to the ActUser object for the login `username` from `manager`. Trying to use this object before its "is-loaded" property is `TRUE` will result in undefined behavior.

`manager` : | the manager to query.
`username` : | the login name of the user to get.
Returns : | ActUser object. [transfer none]

### act_user_manager_get_user_by_id ()

    ActUser *           act_user_manager_get_user_by_id     (ActUserManager *manager,
                                                             uid_t id);

### act_user_manager_goto_login_session ()

    gboolean            act_user_manager_goto_login_session (ActUserManager *manager);

Switch the display to the login manager.

`manager` : | the user manager
Returns : | whether successful or not

### act_user_manager_list_users ()

    GSList *            act_user_manager_list_users         (ActUserManager *manager);

Get a list of system user accounts

`manager` : | a ActUserManager
Returns : | List of ActUser objects. [element-type ActUser][transfer container]

### act_user_manager_no_service ()

    gboolean            act_user_manager_no_service         (ActUserManager *manager);

### act_user_manager_uncache_user ()

    gboolean            act_user_manager_uncache_user       (ActUserManager *manager,
                                                             const char *username,
                                                             GError **error);

## Property Details

### The `"exclude-usernames-list"` property

      "exclude-usernames-list"   gpointer              : Read / Write

Usernames who are specifically excluded.

### The `"has-multiple-users"` property

      "has-multiple-users"       gboolean              : Read

Whether more than one normal user is present.

Default value: FALSE

### The `"include-usernames-list"` property

      "include-usernames-list"   gpointer              : Read / Write

Usernames who are specifically included.

### The `"is-loaded"` property

      "is-loaded"                gboolean              : Read

Determines whether or not the manager object is loaded and ready to read from.

Default value: FALSE

## Signal Details

### The `"user-added"` signal

    void                user_function                      (ActUserManager *arg0,
                                                            ActUser        *arg1,
                                                            gpointer        user_data)      : Run Last

Emitted when a user is added to the user manager.

`user_data` : | user data set when the signal handler was connected.

### The `"user-changed"` signal

    void                user_function                      (ActUserManager *arg0,
                                                            ActUser        *arg1,
                                                            gpointer        user_data)      : Run Last

One of the users has changed

`user_data` : | user data set when the signal handler was connected.

### The `"user-is-logged-in-changed"` signal

    void                user_function                      (ActUserManager *arg0,
                                                            ActUser        *arg1,
                                                            gpointer        user_data)      : Run Last

One of the users has logged in or out.

`user_data` : | user data set when the signal handler was connected.

### The `"user-removed"` signal

    void                user_function                      (ActUserManager *arg0,
                                                            ActUser        *arg1,
                                                            gpointer        user_data)      : Run Last

Emitted when a user is removed from the user manager.

`user_data` : | user data set when the signal handler was connected.