diff options
author | David Zeuthen <davidz@redhat.com> | 2011-03-17 15:27:34 -0400 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2011-03-17 15:56:31 -0400 |
commit | 733291e426109d04fac0ae1cfc37a8585a3ccf76 (patch) | |
tree | bdc23f2889a1cc16aa6fdbe1d7370d604512c74b | |
parent | b1df1b0074434cdc39ae3385aaffaf6c8d28b7b6 (diff) |
daemon: drop desktop_<role>_r group checks
desktop_user_r isn't needed anymore now that
supervisor types are gone.
desktop_admin_r isn't widely used and reinvents
the wheel.
Drop both and instead rely on more traditional
group names for designating adminstrative users.
https://bugs.freedesktop.org/show_bug.cgi?id=35390
Punned-off-By: Ray Strode <rstrode@redhat.com>
-rw-r--r-- | src/daemon.c | 4 | ||||
-rw-r--r-- | src/user.c | 43 |
2 files changed, 12 insertions, 35 deletions
diff --git a/src/daemon.c b/src/daemon.c index 8d0a494..32e9c97 100644 --- a/src/daemon.c +++ b/src/daemon.c @@ -1106,13 +1106,11 @@ daemon_create_user_authorized_cb (Daemon *daemon, argv[3] = cd->real_name; if (cd->account_type == ACCOUNT_TYPE_ADMINISTRATOR) { argv[4] = "-G"; - argv[5] = "desktop_admin_r"; + argv[5] = "wheel"; argv[6] = cd->user_name; argv[7] = NULL; } else if (cd->account_type == ACCOUNT_TYPE_STANDARD) { - argv[4] = "-G"; - argv[5] = "desktop_user_r"; argv[6] = cd->user_name; argv[7] = NULL; } @@ -412,32 +412,22 @@ static gint account_type_from_groups (struct passwd *pwent) { struct group *grp; - gid_t desktop_user_r; - gid_t desktop_admin_r; + gid_t wheel; gid_t *groups; gint ngroups; gint i; - grp = getgrnam ("desktop_user_r"); + grp = getgrnam ("wheel"); if (grp == NULL) { - g_debug ("desktop_user_r group not found"); + g_debug ("wheel group not found"); return ACCOUNT_TYPE_STANDARD; } - desktop_user_r = grp->gr_gid; - - grp = getgrnam ("desktop_admin_r"); - if (grp == NULL) { - g_debug ("desktop_admin_r group not found"); - return ACCOUNT_TYPE_STANDARD; - } - desktop_admin_r = grp->gr_gid; + wheel = grp->gr_gid; ngroups = get_user_groups (pwent->pw_name, pwent->pw_gid, &groups); for (i = 0; i < ngroups; i++) { - if (groups[i] == desktop_user_r) - return ACCOUNT_TYPE_STANDARD; - if (groups[i] == desktop_admin_r) + if (groups[i] == wheel) return ACCOUNT_TYPE_ADMINISTRATOR; } @@ -1589,8 +1579,7 @@ user_change_account_type_authorized_cb (Daemon *daemon, gid_t *groups; gint ngroups; GString *str; - gid_t desktop_user_r; - gid_t desktop_admin_r; + gid_t wheel; struct group *grp; gint i; gchar *argv[5]; @@ -1600,34 +1589,24 @@ user_change_account_type_authorized_cb (Daemon *daemon, "change account type of user '%s' (%d) to %d", user->user_name, user->uid, account_type); - grp = getgrnam ("desktop_user_r"); + grp = getgrnam ("wheel"); if (grp == NULL) { - throw_error (context, ERROR_FAILED, "failed to set account type: desktop_user_r group not found"); + throw_error (context, ERROR_FAILED, "failed to set account type: wheel group not found"); return; } - desktop_user_r = grp->gr_gid; - - grp = getgrnam ("desktop_admin_r"); - if (grp == NULL) { - throw_error (context, ERROR_FAILED, "failed to set account type: desktop_admin_r group not found"); - return; - } - desktop_admin_r = grp->gr_gid; + wheel = grp->gr_gid; ngroups = get_user_groups (user->user_name, user->gid, &groups); str = g_string_new (""); for (i = 0; i < ngroups; i++) { - if (groups[i] == desktop_user_r || groups[i] == desktop_admin_r) + if (groups[i] == wheel) continue; g_string_append_printf (str, "%d,", groups[i]); } switch (account_type) { - case ACCOUNT_TYPE_STANDARD: - g_string_append_printf (str, "%d", desktop_user_r); - break; case ACCOUNT_TYPE_ADMINISTRATOR: - g_string_append_printf (str, "%d", desktop_admin_r); + g_string_append_printf (str, "%d", wheel); break; default: /* remove excess comma */ |