diff --git a/css/app.css b/css/app.css
index f4633c13..9d68bd1b 100644
--- a/css/app.css
+++ b/css/app.css
@@ -352,6 +352,9 @@
#app-navigation > ul ul {
display: inherit !important; }
+.table {
+ width: 100%; }
+
#app-settings-content:not(.ng-hide) {
height: 60px;
display: inherit !important;
diff --git a/css/app.css.map b/css/app.css.map
index ecccc3bf..554c507d 100644
--- a/css/app.css.map
+++ b/css/app.css.map
@@ -1,7 +1,7 @@
{
"version": 3,
-"mappings": "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",
-"sources": ["../sass/partials/button.scss","../sass/partials/tabs.scss","../sass/partials/pwgen.scss","../sass/mixins.scss","../sass/vaults.scss","../sass/credentials.scss","../sass/menu.scss","../sass/app.scss"],
+"mappings": "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",
+"sources": ["../sass/partials/button.scss","../sass/partials/tabs.scss","../sass/partials/pwgen.scss","../sass/mixins.scss","../sass/vaults.scss","../sass/credentials.scss","../sass/menu.scss","../sass/share_credential.scss","../sass/app.scss"],
"names": [],
"file": "app.css"
}
diff --git a/js/app/app.js b/js/app/app.js
index 6e71c814..16b35181 100644
--- a/js/app/app.js
+++ b/js/app/app.js
@@ -41,6 +41,9 @@ angular
.when('/vault/:vault_id/edit/:credential_id', {
templateUrl: 'views/edit_credential.html',
controller: 'CredentialEditCtrl'
+ }).when('/vault/:vault_id/:credential_id/share', {
+ templateUrl: 'views/share_credential.html',
+ controller: 'ShareCtrl'
})
.otherwise({
redirectTo: '/'
diff --git a/js/app/controllers/credential.js b/js/app/controllers/credential.js
index 105c4709..4f8a2fa8 100644
--- a/js/app/controllers/credential.js
+++ b/js/app/controllers/credential.js
@@ -41,6 +41,13 @@ angular.module('passmanApp')
$location.path('/vault/' + $scope.active_vault.vault_id + '/edit/' + _credential.credential_id)
};
+ $scope.shareCredential = function (credential) {
+ var _credential = angular.copy(credential);
+ $rootScope.$emit('app_menu', false);
+ SettingsService.setSetting('share_credential', CredentialService.encryptCredential(_credential));
+ $location.path('/vault/' + $scope.active_vault.vault_id + '/' + _credential.credential_id +'/share')
+ };
+
var notification;
$scope.deleteCredential = function (credential) {
var _credential = angular.copy(credential);
diff --git a/js/app/controllers/share.js b/js/app/controllers/share.js
new file mode 100644
index 00000000..cad329d9
--- /dev/null
+++ b/js/app/controllers/share.js
@@ -0,0 +1,93 @@
+'use strict';
+
+/**
+ * @ngdoc function
+ * @name passmanApp.controller:MainCtrl
+ * @description
+ * # MainCtrl
+ * Controller of the passmanApp
+ */
+angular.module('passmanApp')
+ .controller('ShareCtrl', ['$scope', 'VaultService', 'CredentialService', 'SettingsService', '$location', '$routeParams', function ($scope, VaultService, CredentialService, SettingsService, $location, $routeParams) {
+ $scope.active_vault = VaultService.getActiveVault();
+
+ $scope.tabs = [{
+ title: 'Share with users and groups',
+ url: 'views/partials/forms/share_credential/basics.html',
+ }, {
+ title: 'Share link',
+ url: 'views/partials/forms/share_credential/expire_settings.html',
+ color: 'green'
+ }];
+ $scope.currentTab = {
+ title: 'General',
+ url: 'views/partials/forms/share_credential/basics.html'
+ };
+
+ $scope.onClickTab = function (tab) {
+ $scope.currentTab = tab;
+ };
+
+ $scope.isActiveTab = function (tab) {
+ return tab.url == $scope.currentTab.url;
+ };
+
+ if (!SettingsService.getSetting('defaultVault') || !SettingsService.getSetting('defaultVaultPass')) {
+ if (!$scope.active_vault) {
+ $location.path('/')
+ }
+ } else {
+ if (SettingsService.getSetting('defaultVault') && SettingsService.getSetting('defaultVaultPass')) {
+ var _vault = angular.copy(SettingsService.getSetting('defaultVault'));
+ _vault.vaultKey = angular.copy(SettingsService.getSetting('defaultVaultPass'));
+ VaultService.setActiveVault(_vault);
+ $scope.active_vault = _vault;
+
+ }
+ }
+ var storedCredential = SettingsService.getSetting('share_credential');
+ if (!storedCredential) {
+ $location.path('/vault/' + $routeParams.vault_id);
+ } else {
+ $scope.storedCredential = CredentialService.decryptCredential(angular.copy(storedCredential));
+ }
+ if ($scope.active_vault) {
+ $scope.$parent.selectedVault = true;
+ }
+ $scope.cancel = function(){
+ SettingsService.setSetting('share_credential', null);
+ $location.path('/vault/' + $scope.storedCredential.vault_id);
+ };
+
+
+ $scope.searchUsersAndGroups = function($query){
+
+ };
+
+ $scope.share_settings = {
+ credentialSharedWithUserAndGroup:[
+ {
+ userId: 'someuser',
+ accessLevel: 'CAN_VIEW'
+ },
+ {
+ userId: 'someuser',
+ accessLevel: 'CAN_EDIT'
+ }
+ ]
+ };
+
+ $scope.accessLevels = [
+ {
+ label: 'Can edit',
+ value: 'CAN_EDIT'
+ },
+ {
+ label: 'Can view',
+ value: 'CAN_VIEW'
+ }
+ ]
+
+
+
+ }]);
diff --git a/js/templates.js b/js/templates.js
index c71bc32f..55050c42 100644
--- a/js/templates.js
+++ b/js/templates.js
@@ -1,4 +1,4 @@
-angular.module('templates-main', ['views/edit_credential.html', 'views/partials/forms/edit_credential/basics.html', 'views/partials/forms/edit_credential/custom_fields.html', 'views/partials/forms/edit_credential/files.html', 'views/partials/forms/edit_credential/otp.html', 'views/partials/forms/edit_credential/password.html', 'views/partials/password-meter.html', 'views/show_vault.html', 'views/vaults.html']);
+angular.module('templates-main', ['views/edit_credential.html', 'views/partials/forms/edit_credential/basics.html', 'views/partials/forms/edit_credential/custom_fields.html', 'views/partials/forms/edit_credential/files.html', 'views/partials/forms/edit_credential/otp.html', 'views/partials/forms/edit_credential/password.html', 'views/partials/forms/share_credential/basics.html', 'views/partials/forms/share_credential/expire_settings.html', 'views/partials/password-meter.html', 'views/share_credential.html', 'views/show_vault.html', 'views/vaults.html']);
angular.module('views/edit_credential.html', []).run(['$templateCache', function($templateCache) {
'use strict';
@@ -36,16 +36,34 @@ angular.module('views/partials/forms/edit_credential/password.html', []).run(['$
'
Password Repeat password
Expire date
Renew interval
Password generation settings
');
}]);
+angular.module('views/partials/forms/share_credential/basics.html', []).run(['$templateCache', function($templateCache) {
+ 'use strict';
+ $templateCache.put('views/partials/forms/share_credential/basics.html',
+ 'User / group Access {{user.userId}} {{user.accessLevel}}
');
+}]);
+
+angular.module('views/partials/forms/share_credential/expire_settings.html', []).run(['$templateCache', function($templateCache) {
+ 'use strict';
+ $templateCache.put('views/partials/forms/share_credential/expire_settings.html',
+ 'Expire settings');
+}]);
+
angular.module('views/partials/password-meter.html', []).run(['$templateCache', function($templateCache) {
'use strict';
$templateCache.put('views/partials/password-meter.html',
'Details Hide details
{{message}}
Password score:
{{score.score}}
Cracking times
100 / hourThrottled online attack
{{score.crack_times_display.online_throttling_100_per_hour}}
10 / secondUnthrottled online attack
{{score.crack_times_display.online_no_throttling_10_per_second}}
10k / secondOffline attack, slow hash, many cores
{{score.crack_times_display.offline_slow_hashing_1e4_per_second}}
10B / secondoffline attack, fast hash, many cores
{{score.crack_times_display.offline_fast_hashing_1e10_per_second}}
Match sequence:
See match sequence
{{sequence.token}}
Pattern {{sequence.pattern}} Matched word {{sequence.matched_word}} Dictionary name {{sequence.dictionary_name}} Rank {{sequence.rank}} Reversed {{sequence.reversed}} Guesses {{sequence.guesses}} Base guesses {{sequence.base_guesses}} Uppercase variations {{sequence.uppercase_variations}} l33t-variations {{sequence.l33t_variations}}
');
}]);
+angular.module('views/share_credential.html', []).run(['$templateCache', function($templateCache) {
+ 'use strict';
+ $templateCache.put('views/share_credential.html',
+ '');
+}]);
+
angular.module('views/show_vault.html', []).run(['$templateCache', function($templateCache) {
'use strict';
$templateCache.put('views/show_vault.html',
- ' {{credential.label}} {{tag.text}}
');
+ ' {{credential.label}} {{tag.text}}
');
}]);
angular.module('views/vaults.html', []).run(['$templateCache', function($templateCache) {
diff --git a/sass/app.scss b/sass/app.scss
index b85bdbbd..12af5678 100644
--- a/sass/app.scss
+++ b/sass/app.scss
@@ -8,6 +8,7 @@
@import 'vaults';
@import 'credentials';
@import 'menu';
+@import 'share_credential';
#app-settings-content:not(.ng-hide) {
height: 60px;
diff --git a/sass/share_credential.scss b/sass/share_credential.scss
new file mode 100644
index 00000000..ea2ea1ee
--- /dev/null
+++ b/sass/share_credential.scss
@@ -0,0 +1,3 @@
+.table{
+ width: 100%;
+}
\ No newline at end of file
diff --git a/templates/main.php b/templates/main.php
index 55720dbb..d3889cb8 100644
--- a/templates/main.php
+++ b/templates/main.php
@@ -29,6 +29,7 @@ script('passman', 'app/controllers/menu');
script('passman', 'app/controllers/vault');
script('passman', 'app/controllers/credential');
script('passman', 'app/controllers/edit_credential');
+script('passman', 'app/controllers/share');
script('passman', 'app/filters/range');
script('passman', 'app/filters/propsfilter');
script('passman', 'app/filters/byte');
diff --git a/templates/views/partials/forms/share_credential/basics.html b/templates/views/partials/forms/share_credential/basics.html
new file mode 100644
index 00000000..f2f88080
--- /dev/null
+++ b/templates/views/partials/forms/share_credential/basics.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ User / group
+ Access
+
+
+
+ {{user.userId}}
+ {{user.accessLevel}}
+
+
+
+
\ No newline at end of file
diff --git a/templates/views/partials/forms/share_credential/expire_settings.html b/templates/views/partials/forms/share_credential/expire_settings.html
new file mode 100644
index 00000000..40e99090
--- /dev/null
+++ b/templates/views/partials/forms/share_credential/expire_settings.html
@@ -0,0 +1 @@
+Expire settings
\ No newline at end of file
diff --git a/templates/views/share_credential.html b/templates/views/share_credential.html
new file mode 100644
index 00000000..0d5fa8ba
--- /dev/null
+++ b/templates/views/share_credential.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+
diff --git a/templates/views/show_vault.html b/templates/views/show_vault.html
index 5b72aaad..bc85cbe3 100644
--- a/templates/views/show_vault.html
+++ b/templates/views/show_vault.html
@@ -10,7 +10,6 @@
-
-
+
- {{selectedCredential.changed * 1000 | date:'dd-MM-yyyy @
- HH:mm:ss'}}
+ {{selectedCredential.changed * 1000 | date:'dd-MM-yyyy @ HH:mm:ss'}}
@@ -154,31 +152,28 @@
Created
- {{selectedCredential.created * 1000 | date:'dd-MM-yyyy @
- HH:mm:ss'}}
+ {{selectedCredential.created * 1000 | date:'dd-MM-yyyy @ HH:mm:ss'}}
- {{tag.text}}
+ {{tag.text}}
-
+
Edit
-
- Delete
+
+ Delete
Recover
-
+
Share