screenShield: Add API to add/remove credential managers
Extensions that provide a credential manager can (un)register themself so that the screen shield gets activated right after a user is authenticated. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2399>
This commit is contained in:
parent
b1ac1b47cd
commit
f323d85fc3
@ -94,12 +94,8 @@ var ScreenShield = class extends Signals.EventEmitter {
|
||||
this._activateDialog();
|
||||
});
|
||||
|
||||
this._oVirtCredentialsManager = OVirt.getOVirtCredentialsManager();
|
||||
this._oVirtCredentialsManager.connect('user-authenticated',
|
||||
() => {
|
||||
if (this._isLocked)
|
||||
this._activateDialog();
|
||||
});
|
||||
this._credentialManagers = {};
|
||||
this.addCredentialManager(OVirt.SERVICE_NAME, OVirt.getOVirtCredentialsManager());
|
||||
|
||||
this._loginManager = LoginManager.getLoginManager();
|
||||
this._loginManager.connect('prepare-for-sleep',
|
||||
@ -641,6 +637,26 @@ var ScreenShield = class extends Signals.EventEmitter {
|
||||
// activate without animation in that case.
|
||||
}
|
||||
|
||||
addCredentialManager(serviceName, credentialManager) {
|
||||
if (this._credentialManagers[serviceName])
|
||||
return;
|
||||
|
||||
this._credentialManagers[serviceName] = credentialManager;
|
||||
credentialManager.connectObject('user-authenticated', () => {
|
||||
if (this._isLocked)
|
||||
this._activateDialog();
|
||||
}, this);
|
||||
}
|
||||
|
||||
removeCredentialManager(serviceName) {
|
||||
let credentialManager = this._credentialManagers[serviceName];
|
||||
if (!credentialManager)
|
||||
return;
|
||||
|
||||
credentialManager.disconnectObject(this);
|
||||
delete this._credentialManagers[serviceName];
|
||||
}
|
||||
|
||||
lock(animate) {
|
||||
if (this._lockSettings.get_boolean(DISABLE_LOCK_KEY)) {
|
||||
log('Screen lock is locked down, not locking'); // lock, lock - who's there?
|
||||
|
Loading…
Reference in New Issue
Block a user