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.toggleProtectNote = function() {
this.note.content.protected = !this.note.content.protected; this.note.content.protected = !this.note.content.protected;
this.changesMade({dontUpdateClientModified: true, dontUpdatePreviews: true}); 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() { this.toggleNotePreview = function() {

View File

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

View File

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