~kroq-gar78/ubuntu/precise/gnome-control-center/fix-885947

« back to all changes in this revision

Viewing changes to panels/user-accounts/um-user-manager.h

  • Committer: Bazaar Package Importer
  • Author(s): Rodrigo Moya
  • Date: 2011-05-17 10:47:27 UTC
  • mfrom: (0.1.11 experimental) (1.1.45 upstream)
  • Revision ID: james.westby@ubuntu.com-20110517104727-lqel6m8vhfw5jby1
Tags: 1:3.0.1.1-1ubuntu1
* Rebase on Debian, remaining Ubuntu changes:
* debian/control:
  - Build-Depend on hardening-wrapper, dpkg-dev and dh-autoreconf
  - Add dependency on ubuntu-system-service
  - Remove dependency on gnome-icon-theme-symbolic
  - Move dependency on apg, gnome-icon-theme-symbolic and accountsservice to
    be a Recommends: until we get them in main
* debian/rules:
  - Use autoreconf
  - Add binary-post-install rule for gnome-control-center-data
  - Run dh-autoreconf
* debian/gnome-control-center.dirs:
* debian/gnome-control-center.links:
  - Add a link to the control center shell for indicators
* debian/patches/00_disable-nm.patch:
  - Temporary patch to disable building with NetworkManager until we get
    the new one in the archive
* debian/patches/01_git_remove_gettext_calls.patch:
  - Remove calls to AM_GNU_GETTEXT, IT_PROG_INTLTOOL should be enough
* debian/patches/01_git_kill_warning.patch:
  - Kill warning
* debian/patches/50_ubuntu_systemwide_prefs.patch:
  - Ubuntu specific proxy preferences
* debian/patches/51_ubuntu_system_keyboard.patch:
  - Implement the global keyboard spec at https://wiki.ubuntu.com/DefaultKeyboardSettings

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
 
2
 *
 
3
 * Copyright (C) 2009-2010 Red Hat, Inc.
 
4
 *
 
5
 * This program is free software; you can redistribute it and/or modify
 
6
 * it under the terms of the GNU General Public License as published by
 
7
 * the Free Software Foundation; either version 3 of the License, or
 
8
 * (at your option) any later version.
 
9
 *
 
10
 * This program is distributed in the hope that it will be useful,
 
11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
13
 * GNU General Public License for more details.
 
14
 *
 
15
 * You should have received a copy of the GNU General Public License
 
16
 * along with this program; if not, write to the Free Software
 
17
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
18
 *
 
19
 */
 
20
 
 
21
#ifndef __UM_USER_MANAGER__
 
22
#define __UM_USER_MANAGER__
 
23
 
 
24
#include <glib-object.h>
 
25
#include <gio/gio.h>
 
26
#include <dbus/dbus-glib.h>
 
27
 
 
28
#include "um-user.h"
 
29
 
 
30
G_BEGIN_DECLS
 
31
 
 
32
#define UM_TYPE_USER_MANAGER         (um_user_manager_get_type ())
 
33
#define UM_USER_MANAGER(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), UM_TYPE_USER_MANAGER, UmUserManager))
 
34
#define UM_USER_MANAGER_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST((k), UM_TYPE_USER_MANAGER, UmUserManagerClass))
 
35
#define UM_IS_USER_MANAGER(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), UM_TYPE_USER_MANAGER))
 
36
#define UM_IS_USER_MANAGER_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), UM_TYPE_USER_MANAGER))
 
37
#define UM_USER_MANAGER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), UM_TYPE_USER_MANAGER, UmUserManagerClass))
 
38
 
 
39
typedef struct
 
40
{
 
41
        GObject parent;
 
42
 
 
43
        DBusGConnection *bus;
 
44
        DBusGProxy *proxy;
 
45
 
 
46
        GHashTable *user_by_object_path;
 
47
        GHashTable *user_by_name;
 
48
 
 
49
        gboolean no_service;
 
50
} UmUserManager;
 
51
 
 
52
typedef struct
 
53
{
 
54
        GObjectClass   parent_class;
 
55
 
 
56
        void          (* users_loaded)              (UmUserManager *user_managaer);
 
57
        void          (* user_added)                (UmUserManager *user_manager,
 
58
                                                     UmUser        *user);
 
59
        void          (* user_removed)              (UmUserManager *user_manager,
 
60
                                                     UmUser        *user);
 
61
        void          (* user_changed)              (UmUserManager *user_manager,
 
62
                                                     UmUser        *user);
 
63
} UmUserManagerClass;
 
64
 
 
65
 
 
66
typedef enum {
 
67
        UM_USER_MANAGER_ERROR_FAILED,
 
68
        UM_USER_MANAGER_ERROR_USER_EXISTS,
 
69
        UM_USER_MANAGER_ERROR_USER_DOES_NOT_EXIST,
 
70
        UM_USER_MANAGER_ERROR_PERMISSION_DENIED
 
71
} UmUserManagerError;
 
72
 
 
73
#define UM_USER_MANAGER_ERROR um_user_manager_error_quark ()
 
74
 
 
75
GQuark             um_user_manager_error_quark (void);
 
76
 
 
77
GType              um_user_manager_get_type              (void);
 
78
 
 
79
UmUserManager *    um_user_manager_ref_default           (void);
 
80
 
 
81
gboolean           um_user_manager_no_service            (UmUserManager *manager);
 
82
 
 
83
GSList *           um_user_manager_list_users            (UmUserManager *manager);
 
84
UmUser *           um_user_manager_get_user              (UmUserManager *manager,
 
85
                                                          const char    *user_name);
 
86
UmUser *           um_user_manager_get_user_by_id        (UmUserManager *manager,
 
87
                                                          uid_t          uid);
 
88
 
 
89
void               um_user_manager_create_user           (UmUserManager       *manager,
 
90
                                                          const char          *user_name,
 
91
                                                          const char          *real_name,
 
92
                                                          gint                 account_type,
 
93
                                                          GAsyncReadyCallback  done,
 
94
                                                          gpointer             user_data,
 
95
                                                          GDestroyNotify       destroy);
 
96
gboolean           um_user_manager_create_user_finish    (UmUserManager       *manager,
 
97
                                                          GAsyncResult        *result,
 
98
                                                          UmUser             **user,
 
99
                                                          GError             **error);
 
100
void               um_user_manager_delete_user           (UmUserManager       *manager,
 
101
                                                          UmUser              *user,
 
102
                                                          gboolean             remove_files,
 
103
                                                          GAsyncReadyCallback  done,
 
104
                                                          gpointer             user_data,
 
105
                                                          GDestroyNotify       destroy);
 
106
gboolean           um_user_manager_delete_user_finish    (UmUserManager       *manager,
 
107
                                                          GAsyncResult        *result,
 
108
                                                          GError             **error);
 
109
 
 
110
G_END_DECLS
 
111
 
 
112
#endif /* __UM_USER_MANAGER__ */