Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
If 0xFFFFFFFF is passed as GID when creating a group, let the
platform tools choose the value. This is what we currently do for
users.
|
|
There's no real point in preventing inactive users from editing system
configuration. Usually, users are clearly active since the backends
are not used by scripts, but there's no reason scripts should be forbidden.
The main interest though is that remote desktop sessions that are not
detected as active by ConsoleKit will work as local sessions, thus
fixing or working around bugs like
https://bugs.launchpad.net/ubuntu/+source/policykit/+bug/221363
|
|
If /etc/ntp.conf (or the platform equivalent) doesn't exist, then merely
synchronising the clock in time-admin would create it as an empty file.
This caused other time syncing problems later (see e.g.
https://bugs.launchpad.net/bugs/83604).
|
|
|
|
This flag causes home dir to be erased, leaving platform tools
to fill it with skel files. This has no effect if path to home
dir isn't specified (meaning default).
|
|
We know the GID of the new user, so we can easily pass it
to chown instead of omitting the main group, which is not
supported by FreeBSD according to man pages.
|
|
|
|
Sorry Carlos! ;-)
|
|
Some tasks can take a long time to complete, and modules
don't reply until they are done. Increase the timeout to
avoid sending an error to the clients in that case. Clients
can still use a short timeout if they want, and they'll get
the same error message.
liboobs 2.31.91 takes advantage of this with
oobs_object_commit_async(), by setting a long timeout too.
|
|
The "chown home" flag was only supported when adding a user,
use it in change_user() too. Add "copy home" and "erase home"
flags to allow finer control on home dir changes. Create a
new directory if new home does not exist yet, and handle
complex situations where old home and/or new home exist.
Fix a typo where $user, $old_user and $new_user where mixed
in lock management.
|
|
|
|
|
|
|
|
Handle it the same as older versions.
|
|
Login is considered to be the fixed way of identifying users and groups. This allows changing their UID. Changing a user's login is not possible since we would consider it as a new user. This is how things were supposed to work (see the gnome-system-tools).
Also see commit 34e6995, which fixed the same mistake for groups.
|
|
|
|
Just like users, login is considered to be the fixed way of identifying groups. This allows changing their GID. Changing a group's login is not possible since we would consider it as a new group. This is how things were supposed to work (see the gnome-system-tools).
|
|
Load the config once when committing, to avoid reloading it many times when committing the whole GroupsConfig.
|
|
A simple check before running an external command to modify groups makes the whole process of committing GroupsConfig much quicker.
|
|
dbus_message_get_args() with type DBUS_TYPE_UINT32 requires passing a reference to a guint32. The gulong we were using was 64 bits long on amd64 platforms, meaning the higher half of the UID was garbage. This fixes a bug preventing people from changing their own settings, which occurred because the passed UID was rejected.
|
|
This was causing a crash in some cases of Authentication failure. Since the error wasn't null, it wasn't filled, and we were passing to dbus_message_new_error() the invalid error->message string, via return_error().
|
|
|
|
|
|
We need to set Real name and password before reloading user from /etc/passwd. Else, we erase those fields, and never set it to the asked values.
|
|
Detect whether an account's password is locked in /etc/shadow by running 'passwd -S'. Support locking and unlocking of an account. Use 'passwd -d' when setting an empty password, as chpasswd doesn't support it.
|
|
Returning users with no login or UID would lead to bugs and even crashes in the clients, since we rely on the login to identify users. Better detect it from the start.
|
|
|
|
|
|
|
|
|
|
|
|
Too late...
|
|
|
|
We need to update user settings before running chown: home dir may have been chosen by the platform tools.
|
|
When a group line contained an extra ':', the group struct contained 5 items instead of 4, leading D-Bus bindings to die unexpectedly. Clients did not receive any group struct, and could remove all groups on the system. This bug was mitigated by the move to individual commits, but this change will avoid dying for most cases. UsersConfig doesn't seem to suffer from the same problem.
https://bugs.launchpad.net/ubuntu/+source/gnome-system-tools/+bug/160862
|
|
This was preventing the module from owning the right name, meaning clients could not contact it. Thus, modifying groups was impossible.
|
|
|
|
This is not used since we use platform tools to set password.
|
|
This field will be used later to set the path to a file containing the image to be used as a face (~/.face). For now it's just a placeholder to avoid changing the protocol again.
|
|
|
|
|
|
|
|
This has been committed mistakingly with 73b1da9, but was never needed.
|
|
|
|
|
|
This new was should have been part of commit 59ee7aa and was leading to build failure.
|
|
Use the list of "forbidden" services that was present in ServicesList.pm to filter services we send to the clients. This list includes every service that should not be easily disabled since they could hurt the system. With this change, clients can show all services to the user, instead of limiting to those they know about.
Add many services from Ubuntu, which are likely to exist on other distributions. In particular, we now hide gdm and dbus since disabling those is rarely needed and can be dangerous - it would be equivalent to shooting us in the arm, anyway.
|
|
|
|
Just like users and groups, we shouldn't commit all services at the same time, since this often leads to breaking services that should not have been touched at all. Create a new ServiceConfig module that runs new set_service() and get_service() functions. These are calling platform-dependent equivalents created by moving the relevant code out of global set() functions. Committing all ServicesConfig at once is still supported since it doesn't conflict with the new module. We call it ServiceConfig2 to be consistent with the new modules created with the same design in mind.
|