Show privileges manager if protection not set up

This commit is contained in:
Mo Bitar
2018-12-17 18:08:54 -06:00
parent d3f97e7bae
commit 74fb3b6ca5
3 changed files with 27 additions and 15 deletions

View File

@@ -415,6 +415,13 @@ angular.module('app')
this.toggleProtectNote = function() {
this.note.content.protected = !this.note.content.protected;
this.changesMade({dontUpdateClientModified: true, dontUpdatePreviews: true});
// Show privilegesManager if Protection is not yet set up
privilegesManager.actionHasPrivilegesConfigured(PrivilegesManager.ActionViewProtectedNotes).then((configured) => {
if(!configured) {
privilegesManager.presentPrivilegesManagementModal();
}
})
}
this.toggleNotePreview = function() {

View File

@@ -30,12 +30,12 @@ class PrivilegesManager {
PrivilegesManager.SessionLengthOneWeek = 604800;
this.availableActions = [
PrivilegesManager.ActionManagePrivileges,
PrivilegesManager.ActionManageExtensions,
PrivilegesManager.ActionManageBackups,
PrivilegesManager.ActionManagePasscode,
PrivilegesManager.ActionViewProtectedNotes,
PrivilegesManager.ActionDeleteNote
PrivilegesManager.ActionDeleteNote,
PrivilegesManager.ActionManagePasscode,
PrivilegesManager.ActionManageBackups,
PrivilegesManager.ActionManageExtensions,
PrivilegesManager.ActionManagePrivileges,
]
this.availableCredentials = [
@@ -249,6 +249,10 @@ class PrivilegesManager {
}
}
async actionHasPrivilegesConfigured(action) {
return (await this.netCredentialsForAction(action)).length > 0;
}
async actionRequiresPrivilege(action) {
let expiresAt = await this.getSessionExpirey();
if(expiresAt > new Date()) {

View File

@@ -27,14 +27,15 @@
.sk-p.sk-panel-row You will not be asked to authenticate until {{sessionExpirey}}.
%a.sk-a.sk-panel-row.info{"ng-click" => "clearSession()"} Clear Session
.sk-panel-footer
.sk-h2 About Privileges
.sk-h2.sk-bold About Privileges
.sk-panel-section.no-bottom-pad
.text-content
%p
Privileges represent interface level authentication for accessing certain items and features.
Note that when your application is unlocked, your data exists in temporary memory in an unencrypted state.
Privileges are meant to protect against unwanted access in the event of an unlocked application, but do not affect data encryption state.
%p
Privileges sync across your other devices (not including mobile); however, note that if you require
a "Local Passcode" privilege, and another device does not have a local passcode set up, the local passcode
requirement will be ignored on that device.
.sk-panel-row
.text-content
.sk-p
Privileges represent interface level authentication for accessing certain items and features.
Note that when your application is unlocked, your data exists in temporary memory in an unencrypted state.
Privileges are meant to protect against unwanted access in the event of an unlocked application, but do not affect data encryption state.
%p.sk-p
Privileges sync across your other devices (not including mobile); however, note that if you require
a "Local Passcode" privilege, and another device does not have a local passcode set up, the local passcode
requirement will be ignored on that device.