Bug 106162

Summary: Address control-center regressions
Product: accountsservice Reporter: Ray Strode [halfline] <rstrode>
Component: generalAssignee: Matthias Clasen <mclasen>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: marius.vollmer, rstrode, stefw
Version: unspecified   
Hardware: All   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: daemon: don't override property from user skeleton
lib: don't emit user-added signal until list_users is completed

Description Ray Strode [halfline] 2018-04-20 20:49:20 UTC
gnome-control-center has two problems now:

1) Updating the user icon doesn't take effect until the application is restarted
2) The wrong user is selected at start up

Both of these problems are regressions introduced from
commit 9b4108755a6e1f5f04d80fef92dd3f81423857ad

This bug tries to address both issues.
Comment 1 Ray Strode [halfline] 2018-04-20 20:49:28 UTC
Created attachment 138961 [details] [review]
daemon: don't override property from user skeleton

At the moment the skeleton superclass associated with a user keeps
cached copies of all properties, and the derived user class also
keeps duplicate copies of those properties.

The problem is these properties get out of sync and the derived
class fails to PropertyChanged signals are sent when the properties
are updated.

This commit solves the issue by cutting out the redundant property
data and just defers all property storage to the skeleton.
Comment 2 Ray Strode [halfline] 2018-04-20 20:49:30 UTC
Created attachment 138962 [details] [review]
lib: don't emit user-added signal until list_users is completed

Right now calling act_user_manager_list_users can inadvertently
lead to user-added signals getting emitted before the call completes.

This is not something users of the API expect.
Comment 3 Ray Strode [halfline] 2018-04-20 20:52:17 UTC
Attachment 138961 [details] pushed as e18e8a3 - daemon: don't override property from user skeleton
Attachment 138962 [details] pushed as 9a6a568 - lib: don't emit user-added signal until list_users is completed

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.