accounts: fixed 'UserList' not init before installing dbus interface

tower:https://tower.im/projects/69dc94f2e66248d5b722b7d9609b8fe7/todos/178d68231bc44418965deae6dd2d9fef/
Change-Id: I4e9d9d1a758dfb98cbd8658f574f67d5d10b6d92
This commit is contained in:
jouyouyun 2015-06-01 09:42:34 +08:00 committed by Deepin Code Review
parent 90f4378339
commit 845fcf87aa
5 changed files with 26 additions and 25 deletions

View File

@ -66,11 +66,6 @@ install: build translate
mkdir -pv ${DESTDIR}/etc/dbus-1/system.d
cp misc/conf/*.conf ${DESTDIR}/etc/dbus-1/system.d/
mkdir -pv ${DESTDIR}/etc/systemd/system
cp -rf misc/etc/systemd/system/* ${DESTDIR}/etc/systemd/system/
mkdir -pv ${DESTDIR}/etc/systemd/system/graphical.target.wants
ln -sv ${DESTDIR}/etc/systemd/system/dbus-com.deepin.daemon.Accounts.service ${DESTDIR}/etc/systemd/system/graphical.target.wants/dbus-com.deepin.daemon.Accounts.service
mkdir -pv ${DESTDIR}${PREFIX}/share/dbus-1
cp -r misc/services ${DESTDIR}${PREFIX}/share/dbus-1/
cp -r misc/system-services ${DESTDIR}${PREFIX}/share/dbus-1/

View File

@ -48,7 +48,7 @@ func Start() {
return
}
_m.installUsers(getUserPaths())
_m.installUsers()
}
func Stop() {

View File

@ -101,7 +101,7 @@ func (m *Manager) handleFileShadowChanged() {
func (m *Manager) handleUserAdded(list []string) {
var paths = m.UserList
for _, p := range list {
err := m.installUser(p)
err := m.installUserByPath(p)
if err != nil {
logger.Errorf("Install user '%s' failed: %v", p, err)
continue

View File

@ -61,6 +61,7 @@ func NewManager() *Manager {
m.setPropGuestIcon(userIconGuest)
m.setPropAllowGuest(isGuestUserEnabled())
m.newUsers(getUserPaths())
m.watcher = dutils.NewWatchProxy()
if m.watcher != nil {
@ -82,27 +83,44 @@ func (m *Manager) destroy() {
dbus.UnInstallObject(m)
}
func (m *Manager) installUsers(list []string) {
func (m *Manager) newUsers(list []string) {
var paths []string
for _, v := range list {
err := m.installUser(v)
for _, p := range list {
u, err := NewUser(p)
if err != nil {
logger.Errorf("Install user '%s' failed: %v", v, err)
logger.Errorf("New user '%s' failed: %v", p, err)
continue
}
paths = append(paths, v)
paths = append(paths, p)
m.mapLocker.Lock()
m.usersMap[p] = u
m.mapLocker.Unlock()
}
m.setPropUserList(paths)
}
func (m *Manager) installUsers() {
m.mapLocker.Lock()
defer m.mapLocker.Unlock()
for _, u := range m.usersMap {
err := dbus.InstallOnSystem(u)
if err != nil {
logger.Errorf("Install user '%s' failed: %v",
u.Uid, err)
continue
}
}
}
func (m *Manager) uninstallUsers(list []string) {
for _, p := range list {
m.uninstallUser(p)
}
}
func (m *Manager) installUser(userPath string) error {
func (m *Manager) installUserByPath(userPath string) error {
u, err := NewUser(userPath)
if err != nil {
return err

View File

@ -1,12 +0,0 @@
[Unit]
Description=Deepin Account Manager
DefaultDependencies=no
After=network.target
[Service]
Type=dbus
BusName=com.deepin.daemon.Accounts
ExecStart=/usr/lib/deepin-daemon/dde-system-daemon
[Install]
WantedBy=graphical.target