Add logout of vault

This commit is contained in:
brantje 2016-09-11 22:57:55 +02:00
parent ba62b5b85a
commit fc28988da4
9 changed files with 78 additions and 16 deletions

View file

@ -17,6 +17,7 @@
.popovermenu { .popovermenu {
margin-top: 7px; margin-top: 7px;
height: 100px; height: 100px;
width: 100px;
right: -2px !important; } right: -2px !important; }
.popovermenu ul { .popovermenu ul {
display: block; display: block;
@ -103,4 +104,24 @@
.credential-table tr td .icon-more:hover { .credential-table tr td .icon-more:hover {
opacity: 1; } opacity: 1; }
.settings-container div {
padding-left: 15px; }
.settings-container div .link {
color: #0066ff !important;
cursor: pointer; }
.settings-container div .link:hover {
text-decoration: underline; }
#app-settings-content:not(.ng-hide) {
height: 60px;
display: inherit !important;
padding: 0;
transition: height 0.15s ease-out; }
#app-settings-content.ng-hide {
display: inherit !important;
height: 0;
padding: 0;
transition: height 0.15s ease-in; }
/*# sourceMappingURL=app.css.map */ /*# sourceMappingURL=app.css.map */

View file

@ -1,7 +1,7 @@
{ {
"version": 3, "version": 3,
"mappings": "AAAA,YAAY;EACV,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;AAEb,kBAAkB;EAChB,UAAU,EAAE,OAAoB;EAChC,KAAK,EAAE,IAAI;;AAGb,WAAW;EACT,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;AAEb,iBAAiB;EACf,UAAU,EAAE,OAAoB;EAChC,KAAK,EAAE,IAAI;;ACfb,YAAa;EACX,UAAU,EAAE,GAAG;EACf,MAAM,EAAE,KAAK;EACb,KAAK,EAAE,eAAe;EACtB,eAAG;IACD,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,IAAI;IACZ,kBAAE;MACA,OAAO,EAAE,GAAG;IAEd,yBAAS;MACL,SAAS,EAAE,IAAI;MACf,OAAO,EAAE,MAAM;EAGrB,oBAAQ;IACN,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,KAAK;;ACjBjB,cAAc;EACZ,MAAM,EAAE,MAAM;EACd,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,IAAI;EACX,SAAS,EAAE,KAAK;ECMhB,qBAAqB,EDLE,GAAG;ECM1B,aAAa,EDNU,GAAG;ECO1B,eAAe,EAAE,WAAW;EAAG,qDAAqD;EDNpF,UAAU,EAAE,cAAc;EAC1B,UAAU,EAAE,IAAI;EAChB,OAAO,EAAE,KAAK;EACd,yBAAU;IAER,OAAO,EAAE,GAAG;IACZ,4HAAiB;MACf,MAAM,EAAE,OAAO;IAEjB,+BAAK;MACH,KAAK,EAAE,OAAO;IAEhB,qCAAW;MACT,gBAAgB,EAAE,kBAAkB;MACpC,KAAK,EAAE,IAAI;IAEb,4BAAE;MACA,aAAa,EAAE,iBAAiB;MAChC,OAAO,EAAE,IAAI;IAEf,kCAAQ;MACN,gBAAgB,EAAE,OAAO;EAG7B,0BAAW;IACT,OAAO,EAAE,IAAI;IACb,iCAAM;MACJ,KAAK,EAAE,OAAO;IAEhB,gGAA0C;MACxC,KAAK,EAAE,IAAI;MC1Bf,qBAAqB,ED2BM,GAAG;MC1B9B,aAAa,ED0Bc,GAAG;MCzB9B,eAAe,EAAE,WAAW;MAAG,qDAAqD;ID4BhF,kDAAO;MACL,KAAK,EAAE,GAAG;MACV,OAAO,EAAE,YAAY;IAGzB,kCAAO;MACL,UAAU,EAAE,IAAI;;AAKtB,oCAAoC;EAClC,cAAc;IACZ,KAAK,EAAE,GAAG;AEtDd,iBAAiB;EACf,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,IAAI;EAChB,0BAAQ;IACN,gBAAgB,EAAE,UAAgB;EAGlC,uBAAE;IACA,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,GAAG;IACZ,aAAa,EAAE,iBAAiB;IAChC,6BAAK;MACH,KAAK,EAAE,KAAK;MACZ,kCAAI;QACF,gBAAgB,EAAE,wBAAoB;QACtC,OAAO,EAAE,GAAG;QACZ,SAAS,EAAE,IAAI;IAGnB,kCAAU;MACR,OAAO,EAAE,YAAY;MACrB,KAAK,EAAE,KAAK;MACZ,WAAW,EAAE,GAAG;MAChB,UAAU,EAAE,GAAG;MACf,OAAO,EAAE,GAAG;MACZ,MAAM,EAAE,IAAI;MACZ,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,OAAO;IAEjB,wCAAgB;MACd,OAAO,EAAE,CAAC", "mappings": "AAAA,YAAY;EACV,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;AAEb,kBAAkB;EAChB,UAAU,EAAE,OAAoB;EAChC,KAAK,EAAE,IAAI;;AAGb,WAAW;EACT,UAAU,EAAE,OAAO;EACnB,KAAK,EAAE,IAAI;;AAEb,iBAAiB;EACf,UAAU,EAAE,OAAoB;EAChC,KAAK,EAAE,IAAI;;ACfb,YAAa;EACX,UAAU,EAAE,GAAG;EACf,MAAM,EAAE,KAAK;EACb,KAAK,EAAE,KAAK;EACZ,KAAK,EAAE,eAAe;EACtB,eAAG;IACD,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,IAAI;IACZ,kBAAE;MACA,OAAO,EAAE,GAAG;IAEd,yBAAS;MACL,SAAS,EAAE,IAAI;MACf,OAAO,EAAE,MAAM;EAGrB,oBAAQ;IACN,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,KAAK;;AClBjB,cAAc;EACZ,MAAM,EAAE,MAAM;EACd,UAAU,EAAE,IAAI;EAChB,KAAK,EAAE,IAAI;EACX,SAAS,EAAE,KAAK;ECMhB,qBAAqB,EDLE,GAAG;ECM1B,aAAa,EDNU,GAAG;ECO1B,eAAe,EAAE,WAAW;EAAG,qDAAqD;EDNpF,UAAU,EAAE,cAAc;EAC1B,UAAU,EAAE,IAAI;EAChB,OAAO,EAAE,KAAK;EACd,yBAAU;IAER,OAAO,EAAE,GAAG;IACZ,4HAAiB;MACf,MAAM,EAAE,OAAO;IAEjB,+BAAK;MACH,KAAK,EAAE,OAAO;IAEhB,qCAAW;MACT,gBAAgB,EAAE,kBAAkB;MACpC,KAAK,EAAE,IAAI;IAEb,4BAAE;MACA,aAAa,EAAE,iBAAiB;MAChC,OAAO,EAAE,IAAI;IAEf,kCAAQ;MACN,gBAAgB,EAAE,OAAO;EAG7B,0BAAW;IACT,OAAO,EAAE,IAAI;IACb,iCAAM;MACJ,KAAK,EAAE,OAAO;IAEhB,gGAA0C;MACxC,KAAK,EAAE,IAAI;MC1Bf,qBAAqB,ED2BM,GAAG;MC1B9B,aAAa,ED0Bc,GAAG;MCzB9B,eAAe,EAAE,WAAW;MAAG,qDAAqD;ID4BhF,kDAAO;MACL,KAAK,EAAE,GAAG;MACV,OAAO,EAAE,YAAY;IAGzB,kCAAO;MACL,UAAU,EAAE,IAAI;;AAKtB,oCAAoC;EAClC,cAAc;IACZ,KAAK,EAAE,GAAG;AEtDd,iBAAiB;EACf,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,IAAI;EAChB,0BAAQ;IACN,gBAAgB,EAAE,UAAgB;EAGlC,uBAAE;IACA,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,GAAG;IACZ,aAAa,EAAE,iBAAiB;IAChC,6BAAK;MACH,KAAK,EAAE,KAAK;MACZ,kCAAI;QACF,gBAAgB,EAAE,wBAAoB;QACtC,OAAO,EAAE,GAAG;QACZ,SAAS,EAAE,IAAI;IAGnB,kCAAU;MACR,OAAO,EAAE,YAAY;MACrB,KAAK,EAAE,KAAK;MACZ,WAAW,EAAE,GAAG;MAChB,UAAU,EAAE,GAAG;MACf,OAAO,EAAE,GAAG;MACZ,MAAM,EAAE,IAAI;MACZ,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,OAAO;IAEjB,wCAAgB;MACd,OAAO,EAAE,CAAC;;AC7BhB,uBAAG;EACD,YAAY,EAAE,IAAI;EAClB,6BAAK;IACH,KAAK,EAAE,kBAA2B;IAClC,MAAM,EAAE,OAAO;EAEjB,mCAAW;IACT,eAAe,EAAE,SAAS;;ACEhC,mCAAoC;EAClC,MAAM,EAAE,IAAI;EACZ,OAAO,EAAE,kBAAkB;EAC3B,OAAO,EAAE,CAAC;EACV,UAAU,EAAE,qBAAqB;;AAEnC,6BAA6B;EAC3B,OAAO,EAAE,kBAAkB;EAC3B,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;EACV,UAAU,EAAE,oBAAoB",
"sources": ["../sass/partials/button.scss","../sass/partials/popovermenu.scss","../sass/vaults.scss","../sass/mixins.scss","../sass/credentials.scss"], "sources": ["../sass/partials/button.scss","../sass/partials/popovermenu.scss","../sass/vaults.scss","../sass/mixins.scss","../sass/credentials.scss","../sass/menu.scss","../sass/app.scss"],
"names": [], "names": [],
"file": "app.css" "file": "app.css"
} }

View file

@ -8,7 +8,7 @@
* Controller of the passmanApp * Controller of the passmanApp
*/ */
angular.module('passmanApp') angular.module('passmanApp')
.controller('CredentialCtrl', ['$scope', 'VaultService', 'SettingsService', '$location', 'CredentialService', function ($scope, VaultService, SettingsService, $location, CredentialService) { .controller('CredentialCtrl', ['$scope', 'VaultService', 'SettingsService', '$location', 'CredentialService', '$rootScope', function ($scope, VaultService, SettingsService, $location, CredentialService, $rootScope) {
$scope.active_vault = VaultService.getActiveVault(); $scope.active_vault = VaultService.getActiveVault();
if(! SettingsService.getSetting('defaultVault') || ! SettingsService.getSetting('defaultVaultPass')){ if(! SettingsService.getSetting('defaultVault') || ! SettingsService.getSetting('defaultVaultPass')){
if(!$scope.active_vault){ if(!$scope.active_vault){
@ -24,6 +24,13 @@ angular.module('passmanApp')
} }
$rootScope.$on('logout', function(){
console.log('Logout received, clean up');
$scope.credentials = [];
$scope.$parent.selectedVault = false;
$scope.active_vault = null;
});
var fetchCredentials = function(){ var fetchCredentials = function(){
VaultService.getVault($scope.active_vault).then(function(credentials) { VaultService.getVault($scope.active_vault).then(function(credentials) {
var _credentials = []; var _credentials = [];

View file

@ -8,10 +8,10 @@
* Controller of the passmanApp * Controller of the passmanApp
*/ */
angular.module('passmanApp') angular.module('passmanApp')
.controller('MenuCtrl', function () { .controller('MenuCtrl', ['$scope', 'VaultService', 'SettingsService', '$location', '$rootScope', function ($scope, VaultService, SettingsService, $location, $rootScope) {
this.awesomeThings = [ $scope.logout = function () {
'HTML5 Boilerplate', SettingsService.setSetting('defaultVaultPass', false);
'AngularJS', $rootScope.$broadcast('logout');
'Karma' $location.path('/');
]; }
}); }]);

View file

@ -23,6 +23,9 @@ angular.module('passmanApp')
if(vault.guid == default_vault.guid){ if(vault.guid == default_vault.guid){
$scope.default_vault = true; $scope.default_vault = true;
$scope.list_selected_vault = SettingsService.getSetting('defaultVault'); $scope.list_selected_vault = SettingsService.getSetting('defaultVault');
if(SettingsService.getSetting('defaultVaultPass') != ''){
$location.path('/vault/'+ vault.vault_id);
}
break; break;
} }
} }

View file

@ -6,4 +6,17 @@
@import 'partials/popovermenu'; @import 'partials/popovermenu';
@import 'vaults'; @import 'vaults';
@import 'credentials'; @import 'credentials';
@import 'menu'; @import 'menu';
#app-settings-content:not(.ng-hide) {
height: 60px;
display: inherit !important;
padding: 0;
transition: height 0.15s ease-out;
}
#app-settings-content.ng-hide{
display: inherit !important;
height: 0;
padding: 0;
transition: height 0.15s ease-in;
}

View file

@ -0,0 +1,12 @@
.settings-container{
div{
padding-left: 15px;
.link{
color: rgb(0, 102, 255) !important;
cursor: pointer;
}
.link:hover{
text-decoration: underline;
}
}
}

View file

@ -1,6 +1,7 @@
.popovermenu { .popovermenu {
margin-top: 7px; margin-top: 7px;
height: 100px; height: 100px;
width: 100px;
right: -2px !important; right: -2px !important;
ul { ul {
display: block; display: block;

View file

@ -17,6 +17,7 @@ script('passman', 'vendor/sjcl/sjcl');
script('passman', 'app/app'); script('passman', 'app/app');
script('passman', 'templates'); script('passman', 'templates');
script('passman', 'app/controllers/main'); script('passman', 'app/controllers/main');
script('passman', 'app/controllers/menu');
script('passman', 'app/controllers/vault'); script('passman', 'app/controllers/vault');
script('passman', 'app/controllers/credential'); script('passman', 'app/controllers/credential');
script('passman', 'app/filters/propsfilter'); script('passman', 'app/filters/propsfilter');
@ -34,7 +35,7 @@ style('passman', 'app');
?> ?>
<div id="app" ng-app="passmanApp" ng-controller="MainCtrl"> <div id="app" ng-app="passmanApp" ng-controller="MainCtrl">
<div id="app-navigation" ng-if="selectedVault"> <div id="app-navigation" ng-if="selectedVault" ng-controller="MenuCtrl">
<ul> <ul>
<li><a href="#">First level entry</a></li> <li><a href="#">First level entry</a></li>
<li> <li>
@ -45,14 +46,18 @@ style('passman', 'app');
</ul> </ul>
</li> </li>
</ul> </ul>
<div id="app-settings"> <div id="app-settings" ng-init="settingsShown = false;">
<div id="app-settings-header"> <div id="app-settings-header">
<button class="settings-button" <button class="settings-button"
data-apps-slide-toggle="#app-settings-content" ng-click="settingsShown = !settingsShown"
></button> >Settings</button>
</div> </div>
<div id="app-settings-content"> <div id="app-settings-content" ng-show="settingsShown">
<!-- Your settings in here --> <!-- Your settings in here -->
<div class="settings-container">
<div><span class="link">Settings</span></div>
<div><span class="link" ng-click="logout()">Logout</span></div>
</div>
</div> </div>
</div> </div>
</div> </div>