introspect: Make invocation check error-based
If we throw an error when the invocation isn't allowed instead of returning false, we can simply return that error instead of duplicating the error handling. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1970>
This commit is contained in:
parent
7298ee23e9
commit
3b9e672a09
@ -137,21 +137,23 @@ var IntrospectService = class {
|
||||
type == Meta.WindowType.UTILITY;
|
||||
}
|
||||
|
||||
_isInvocationAllowed(invocation) {
|
||||
_checkInvocation(invocation) {
|
||||
if (this._isIntrospectEnabled())
|
||||
return true;
|
||||
return;
|
||||
|
||||
if (this._isSenderAllowed(invocation.get_sender()))
|
||||
return true;
|
||||
return;
|
||||
|
||||
return false;
|
||||
throw new GLib.Error(Gio.DBusError,
|
||||
Gio.DBusError.ACCESS_DENIED,
|
||||
'App introspection not allowed');
|
||||
}
|
||||
|
||||
GetRunningApplicationsAsync(params, invocation) {
|
||||
if (!this._isInvocationAllowed(invocation)) {
|
||||
invocation.return_error_literal(Gio.DBusError,
|
||||
Gio.DBusError.ACCESS_DENIED,
|
||||
'App introspection not allowed');
|
||||
try {
|
||||
this._checkInvocation(invocation);
|
||||
} catch (e) {
|
||||
invocation.return_gerror(e);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -163,10 +165,10 @@ var IntrospectService = class {
|
||||
let apps = this._appSystem.get_running();
|
||||
let windowsList = {};
|
||||
|
||||
if (!this._isInvocationAllowed(invocation)) {
|
||||
invocation.return_error_literal(Gio.DBusError,
|
||||
Gio.DBusError.ACCESS_DENIED,
|
||||
'App introspection not allowed');
|
||||
try {
|
||||
this._checkInvocation(invocation);
|
||||
} catch (e) {
|
||||
invocation.return_gerror(e);
|
||||
return;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user