Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/passman.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrantje <brantje@gmail.com>2017-02-17 23:25:18 +0300
committerbrantje <brantje@gmail.com>2017-02-17 23:25:18 +0300
commit6767322a22bae9549b439fac40bbdbd2a2df8fee (patch)
tree2bfcd4ec82685f31b226168f4a76ad8f0ba15b0c /templates
parent76852c0d77c81766fe706afb9293eff40187c7a4 (diff)
Lock vault after 3 wrong attempts (Fixes #197)
Fix share button, fix shared_key not added to storedCredential after sharing (Fixes #249) Add password app importer. Fixes #248 Fix version check via proxy. Fixes #237 Fix activity app not filtering. Fixes #246 Add EnPass txt importer. Fixes #159 Fix for disabled share button Require vault key for export. Fixes #199 Indicate that sharing only works with users that have 1 or more vaults. Fixes #242 Reset tags on logout. Fixes #245 Ability to enter OTP secret manually. Fixes #198 Create teampass importer. Fixes #244
Diffstat (limited to 'templates')
-rw-r--r--templates/main.php5
-rw-r--r--templates/part.admin.php32
-rw-r--r--templates/views/partials/forms/edit_credential/otp.html24
-rw-r--r--templates/views/partials/forms/settings/export.html21
-rw-r--r--templates/views/partials/forms/settings/import.html7
-rw-r--r--templates/views/partials/forms/share_credential/basics.html5
-rw-r--r--templates/views/share_credential.html4
-rw-r--r--templates/views/show_vault.html2
-rw-r--r--templates/views/vaults.html10
9 files changed, 79 insertions, 31 deletions
diff --git a/templates/main.php b/templates/main.php
index f2ee788c..ec91a71f 100644
--- a/templates/main.php
+++ b/templates/main.php
@@ -82,7 +82,10 @@ script('passman', 'importers/importer-lastpasscsv');
script('passman', 'importers/importer-dashlanecsv');
script('passman', 'importers/importer-zohocsv');
script('passman', 'importers/importer-passmanjson');
+script('passman', 'importers/importer-ocpasswords');
script('passman', 'importers/importer-clipperz');
+script('passman', 'importers/importer-teampass');
+script('passman', 'importers/importer-enpass');
script('passman', 'importers/importer-passpackcsv');
script('passman', 'importers/importer-randomdata');
script('passman', 'exporters/exporter-main');
@@ -96,7 +99,7 @@ script('passman', 'exporters/exporter-csv');
/*build-css-start*/
style('passman', 'vendor/ng-password-meter/ng-password-meter');
style('passman', 'vendor/bootstrap/bootstrap.min');
-style('passman', 'vendor/bootstrap/bootstrap-theme.min');
+
style('passman', 'vendor/font-awesome/font-awesome.min');
style('passman', 'vendor/angular-xeditable/xeditable.min');
style('passman', 'vendor/ng-tags-input/ng-tags-input.min');
diff --git a/templates/part.admin.php b/templates/part.admin.php
index e2bda70b..10b7d98d 100644
--- a/templates/part.admin.php
+++ b/templates/part.admin.php
@@ -9,17 +9,31 @@ $checkVersion = OC::$server->getConfig()->getAppValue('passman', 'check_version'
$AppInstance = new App();
$localVersion = $AppInstance->getAppInfo("passman")["version"];
if ($checkVersion) {
-// get latest master version
- $doc = new DOMDocument();
- $doc->load('https://raw.githubusercontent.com/nextcloud/passman/master/appinfo/info.xml');
- $root = $doc->getElementsByTagName("info");
+ // get latest master version
$version = false;
$githubVersion = $l->t('Unable to get version info');
- foreach ($root as $element) {
- $versions = $element->getElementsByTagName("version");
- $version = $versions->item(0)->nodeValue;
+
+ $url = 'https://raw.githubusercontent.com/nextcloud/passman/master/appinfo/info.xml';
+ try {
+ $client = OC::$server->getHTTPClientService()->newClient();
+ $response = $client->get($url);
+ $xml = $response->getBody();
+ } catch (\Exception $e) {
+ $xml = false;
}
- if ($version) {
+
+ if ($xml) {
+ $loadEntities = libxml_disable_entity_loader(true);
+ $data = @simplexml_load_string($xml);
+ libxml_disable_entity_loader($loadEntities);
+ if ($data !== false) {
+ $version = (string)$data->version;
+ } else {
+ libxml_clear_errors();
+ }
+ }
+
+ if ($version !== false) {
$githubVersion = $version;
}
}
@@ -36,7 +50,7 @@ $ciphers = openssl_get_cipher_methods();
} ?>
Local version: <?php p($localVersion); ?><br/>
<?php
- if (version_compare($githubVersion, $localVersion) === 1) {
+ if ($checkVersion && version_compare($githubVersion, $localVersion) === 1) {
p($l->t('A newer version of passman is available'));
}
?>
diff --git a/templates/views/partials/forms/edit_credential/otp.html b/templates/views/partials/forms/edit_credential/otp.html
index 5c0fc261..07a4635d 100644
--- a/templates/views/partials/forms/edit_credential/otp.html
+++ b/templates/views/partials/forms/edit_credential/otp.html
@@ -1,18 +1,24 @@
<div class="row">
<div class="col-xs-12">
- <div class="col-xs-2 nopadding">
- {{ 'upload.qr' | translate}}
+ <div class="col-xs-4 nopadding">
+ <span class="otpText">{{ 'upload.qr' | translate}}</span>
+ <select ng-model="otpType">
+ <option value="qrcode">Upload QR code</option>
+ <option value="secret">Enter secret</option>
+ </select>
</div>
<div class="col-xs-6 nopadding">
<input type="file" qrread on-read="parseQR(qrdata)"
class="input_secret"
- on-read="parseQR(qrdata)"/>
+ on-read="parseQR(qrdata)" ng-show="otpType === 'qrcode'"/>
+ <input type="text" ng-model="storedCredential.otp.secret" ng-show="otpType === 'secret'">
</div>
</div>
</div>
<div class="row">
- <div class="col-xs-12" ng-if="storedCredential.otp">{{ 'current.qr' | translate}}
+ <div class="col-xs-12" ng-if="storedCredential.otp">
+ <b>{{ 'current.qr' | translate}}</b>
</div>
</div>
<div class="row">
@@ -22,23 +28,23 @@
<div class="col-sm-4 col-sm-5 col-md-5">
<table ng-show="storedCredential.otp">
<tr ng-show="storedCredential.otp.type">
- <td>{{ 'type' | translate}}:</td>
+ <td>{{ 'type' | translate}}: </td>
<td>{{storedCredential.otp.type}}</td>
</tr>
<tr ng-show="storedCredential.otp.label">
- <td>{{ 'label' | translate}}:</td>
+ <td>{{ 'label' | translate}}: </td>
<td>{{storedCredential.otp.label}}</td>
</tr>
<tr ng-show="storedCredential.otp.issuer">
- <td>{{ 'issuer' | translate}}:</td>
+ <td>{{ 'issuer' | translate}}: </td>
<td>{{storedCredential.otp.issuer}}</td>
</tr>
<tr ng-show="storedCredential.otp.secret">
- <td>{{ 'secret' | translate}}:</td>
+ <td>{{ 'secret' | translate}}: </td>
<td>{{storedCredential.otp.secret}}</td>
</tr>
<tr ng-show="storedCredential.otp.secret">
- <td>{{ 'otp' | translate}}:</td>
+ <td>{{ 'otp' | translate}}: </td>
<td><span otp-generator
secret="storedCredential.otp.secret"></span>
</td>
diff --git a/templates/views/partials/forms/settings/export.html b/templates/views/partials/forms/settings/export.html
index 2ede0a7d..f39c22f9 100644
--- a/templates/views/partials/forms/settings/export.html
+++ b/templates/views/partials/forms/settings/export.html
@@ -10,13 +10,26 @@
</option>
</select></label>
<div><b>{{selectedExporter.description}}</b></div>
- <button class="button" ng-click="startExport()"
- ng-if="selectedExporter">{{ 'export' | translate}}
- </button>
+
+ <div ng-show="selectedExporter" class="col-xs-3 nopadding">
+ <label>{{ 'export.confirm.text' | translate }}</label>
+ <input type="password" ng-model="confirm_key">
+ <br />
+ <div class="alert alert-warning" ng-show="error">
+ {{error}}
+ </div>
+ </div>
+ <div class="clearfix">
+ <button class=" button" ng-click="startExport()"
+ ng-if="selectedExporter">{{ 'export' | translate}}
+ </button>
+ </div>
</div>
+
<div class="col-xs-6">
<div ng-if="log" class="import_log">
- <textarea id="import_log" auto-scroll="log">{{log.join('\n')}}</textarea>
+ <textarea id="import_log"
+ auto-scroll="log">{{log.join('\n')}}</textarea>
</div>
</div>
</div>
diff --git a/templates/views/partials/forms/settings/import.html b/templates/views/partials/forms/settings/import.html
index d0f69be4..3e66d8d2 100644
--- a/templates/views/partials/forms/settings/import.html
+++ b/templates/views/partials/forms/settings/import.html
@@ -9,7 +9,12 @@
{{importer.name}}
</option>
</select></label>
- <div><b>{{selectedImporter.description}}</b></div>
+ <div ng-show="selectedImporter">
+ <b>{{ 'import.steps' | translate }}</b>
+ <ul class="import-steps">
+ <li ng-repeat="step in selectedImporter.exportSteps">{{step}}</li>
+ </ul>
+ </div>
<input ng-if="selectedImporter" type="file" file-select
success="fileLoaded" error="fileLoadError"
progress="fileSelectProgress"><br/>
diff --git a/templates/views/partials/forms/share_credential/basics.html b/templates/views/partials/forms/share_credential/basics.html
index 539bc8d8..f3142d25 100644
--- a/templates/views/partials/forms/share_credential/basics.html
+++ b/templates/views/partials/forms/share_credential/basics.html
@@ -22,6 +22,11 @@
</button>
</td>
</tr>
+ <tr>
+ <td colspan="2">
+ <small>{{ 'search.result.missing' | translate}}</small>
+ </td>
+ </tr>
</thead>
</table>
diff --git a/templates/views/share_credential.html b/templates/views/share_credential.html
index 84896c96..45fe8c9d 100644
--- a/templates/views/share_credential.html
+++ b/templates/views/share_credential.html
@@ -27,9 +27,9 @@
<div class="tab_container share_credential" ng-show="currentTab">
<div ng-include="currentTab.url"></div>
- <button ng-click="applyShare()" ng-disabled="!share_settings.linkSharing.enabled || share_settings.credentialSharedWithUserAndGroup.length > 0">{{ 'share' | translate}}</button>
+ <button ng-click="applyShare()" ng-disabled="share_settings.linkSharing.enabled === false && share_settings.credentialSharedWithUserAndGroup.length === 0">{{ 'share' | translate}}</button>
<button ng-click="cancel()">{{ 'cancel' | translate}}</button>
- <button class="btn btn-danger" ng-click="unshareCredential(storedCredential)">{{ 'unshare' | translate}}</button>
+ <button class="btn btn-danger" ng-disabled="!storedCredential.shared_key" ng-click="unshareCredential(storedCredential)">{{ 'unshare' | translate}}</button>
</div>
diff --git a/templates/views/show_vault.html b/templates/views/show_vault.html
index 7107722f..a584d46b 100644
--- a/templates/views/show_vault.html
+++ b/templates/views/show_vault.html
@@ -6,7 +6,7 @@
<a><i class="fa fa-home"></i></a>
</div>
<div class="crumb svg last" ng-click="clearState()">
- <a>{{active_vault.name}}</a>
+ <span>{{active_vault.name}}</span>
</div>
</div>
</div>
diff --git a/templates/views/vaults.html b/templates/views/vaults.html
index 17a45e28..6fb12e40 100644
--- a/templates/views/vaults.html
+++ b/templates/views/vaults.html
@@ -95,7 +95,7 @@
<span ng-if="list_selected_vault.last_access === 0">Never</span>
</small>
</div>
- <div>
+ <div class="login_opts">
<div>
<label>
<input type="checkbox" ng-checked="default_vault"
@@ -128,10 +128,12 @@
</select>
</div>
</div>
- <div class="button button-geen"
- ng-click="loginToVault(list_selected_vault, vault_key)">
+
+ <div class="alert alert-danger" ng-show="vault_tries[list_selected_vault.guid].timeout !== 0" translate="vault.locked" translate-value-tries="{{ vault_tries[list_selected_vault.guid].tries }}" translate-value-time="{{ vault_tries[list_selected_vault.guid].timeout | toHHMMSS }}"></div>
+ <button class="button button-geen"
+ ng-click="loginToVault(list_selected_vault, vault_key)" ng-disabled="vault_tries[list_selected_vault.guid].timeout !== 0">
{{ 'vault.decrypt' | translate}}
- </div>
+ </button>
</div>
</div>