[gnome-control-center] user-accounts: fix counting of administrators in num_admin_accounts ()
- From: Ondrej Holy <oholy src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] user-accounts: fix counting of administrators in num_admin_accounts ()
- Date: Wed, 19 Jun 2013 11:56:23 +0000 (UTC)
commit fa89c66aa6cce423022f3e7d5b4a8702a9f5ab38
Author: Joshua Lock <joshua lock intel com>
Date: Tue Jun 18 18:19:05 2013 +0100
user-accounts: fix counting of administrators in num_admin_accounts ()
Don't count inactive administrator accounts when trying to prevent the
user from disabling or deleting the only administrator account.
https://bugzilla.gnome.org/show_bug.cgi?id=690246
panels/user-accounts/um-utils.c | 11 ++++++-----
1 files changed, 6 insertions(+), 5 deletions(-)
---
diff --git a/panels/user-accounts/um-utils.c b/panels/user-accounts/um-utils.c
index bad0b14..84d2cc5 100644
--- a/panels/user-accounts/um-utils.c
+++ b/panels/user-accounts/um-utils.c
@@ -1033,7 +1033,7 @@ set_user_icon_data (ActUser *user,
}
static guint
-get_num_admin (ActUserManager *um)
+get_num_active_admin (ActUserManager *um)
{
GSList *list;
GSList *l;
@@ -1042,7 +1042,7 @@ get_num_admin (ActUserManager *um)
list = act_user_manager_list_users (um);
for (l = list; l != NULL; l = l->next) {
ActUser *u = l->data;
- if (act_user_get_account_type (u) == ACT_USER_ACCOUNT_TYPE_ADMINISTRATOR) {
+ if (act_user_get_account_type (u) == ACT_USER_ACCOUNT_TYPE_ADMINISTRATOR &&
!act_user_get_locked (u)) {
num_admin++;
}
}
@@ -1059,12 +1059,13 @@ would_demote_only_admin (ActUser *user)
/* Prevent the user from demoting the only admin account.
* Returns TRUE when user is an administrator and there is only
- * one administrator */
+ * one enabled administrator. */
- if (act_user_get_account_type (user) == ACT_USER_ACCOUNT_TYPE_STANDARD)
+ if (act_user_get_account_type (user) == ACT_USER_ACCOUNT_TYPE_STANDARD
+ || act_user_get_locked (user))
return FALSE;
- if (get_num_admin (um) > 1)
+ if (get_num_active_admin (um) > 1)
return FALSE;
return TRUE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]