weather: Only require auto-location authorization if sandboxed
Since commit 87e60ed97843, geoclue no longer pretends that authorization is useful for system-installed apps (as they can easily lie about their ID). Unfortunately this broke our auto-location support in case Weather is installed non-sandboxed, as we are waiting for an authorization that will never happen. Unbreak it by only requiring authorization when installed as Flatpak. https://gitlab.gnome.org/GNOME/gnome-shell/issues/1823
This commit is contained in:
parent
7be1729cde
commit
5043e6d6bd
@ -32,6 +32,7 @@ var WeatherClient = class {
|
|||||||
this._gclueStarting = false;
|
this._gclueStarting = false;
|
||||||
this._gclueLocationChangedId = 0;
|
this._gclueLocationChangedId = 0;
|
||||||
|
|
||||||
|
this._needsAuth = true;
|
||||||
this._weatherAuthorized = false;
|
this._weatherAuthorized = false;
|
||||||
this._permStore = new PermissionStore.PermissionStore((proxy, error) => {
|
this._permStore = new PermissionStore.PermissionStore((proxy, error) => {
|
||||||
if (error) {
|
if (error) {
|
||||||
@ -142,7 +143,7 @@ var WeatherClient = class {
|
|||||||
get _useAutoLocation() {
|
get _useAutoLocation() {
|
||||||
return this._autoLocationRequested &&
|
return this._autoLocationRequested &&
|
||||||
this._locationSettings.get_boolean('enabled') &&
|
this._locationSettings.get_boolean('enabled') &&
|
||||||
this._weatherAuthorized;
|
(!this._needsAuth || this._weatherAuthorized);
|
||||||
}
|
}
|
||||||
|
|
||||||
_onWeatherProxyReady(o, res) {
|
_onWeatherProxyReady(o, res) {
|
||||||
@ -175,6 +176,13 @@ var WeatherClient = class {
|
|||||||
|
|
||||||
if (hadApp !== haveApp)
|
if (hadApp !== haveApp)
|
||||||
this.emit('changed');
|
this.emit('changed');
|
||||||
|
|
||||||
|
let neededAuth = this._needsAuth;
|
||||||
|
this._needsAuth = this._weatherApp === null ||
|
||||||
|
this._weatherApp.app_info.has_key('X-Flatpak');
|
||||||
|
|
||||||
|
if (neededAuth !== this._needsAuth)
|
||||||
|
this._updateAutoLocation();
|
||||||
}
|
}
|
||||||
|
|
||||||
_loadInfo() {
|
_loadInfo() {
|
||||||
|
Loading…
Reference in New Issue
Block a user