func (m *Manager) CreateUser(dbusMsg dbus.DMessage, name, fullname string, ty int32) error { pid := dbusMsg.GetSenderPID() err := m.polkitAuthManagerUser(pid, "CreateUser") if err != nil { return err } // Avoid dde-control-center UI block go func() { err := users.CreateUser(name, fullname, "", ty) if err != nil { logger.Warningf("DoAction: create user '%s' failed: %v\n", name, err) triggerSigErr(pid, "CreateUser", err.Error()) return } err = users.SetUserType(ty, name) if err != nil { logger.Warningf("DoAction: set user type '%s' failed: %v\n", name, err) } }() return nil }
func (u *User) SetAccountType(dbusMsg dbus.DMessage, ty int32) (bool, error) { pid := dbusMsg.GetSenderPID() err := u.accessAuthentication(pid, false, "SetAccountType") if err != nil { return false, err } go func() { err := users.SetUserType(ty, u.UserName) if err != nil { logger.Warning("DoAction: set user type failed:", err) triggerSigErr(pid, "SetAccountType", err.Error()) return } u.setPropInt32(&u.AccountType, "AccountType", ty) }() return true, nil }