summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/private/Settings/Manager.php8
-rw-r--r--lib/private/Settings/Personal/AppPasswords.php59
-rw-r--r--settings/js/settings/authtoken-init.js (renamed from settings/js/settings/sessions.js)0
-rw-r--r--settings/templates/settings/personal/app-passwords.php66
-rw-r--r--settings/templates/settings/personal/personal.info.php2
-rw-r--r--settings/templates/settings/personal/sessions.php2
6 files changed, 133 insertions, 4 deletions
diff --git a/lib/private/Settings/Manager.php b/lib/private/Settings/Manager.php
index 10f7224b9ad..f914ac634f7 100644
--- a/lib/private/Settings/Manager.php
+++ b/lib/private/Settings/Manager.php
@@ -376,6 +376,11 @@ class Manager implements IManager {
$form = new Personal\Sessions();
$forms[$form->getPriority()] = [$form];
}
+ if($section === 'app-passwords') {
+ /** @var ISettings $form */
+ $form = new Personal\AppPasswords();
+ $forms[$form->getPriority()] = [$form];
+ }
} catch (QueryException $e) {
// skip
}
@@ -410,7 +415,8 @@ class Manager implements IManager {
public function getPersonalSections() {
$sections = [
0 => [new Section('personal-info', $this->l->t('Personal info'), 0, $this->url->imagePath('core', 'actions/info.svg'))],
- 1 => [new Section('sessions', $this->l->t('Sessions'), 0, $this->url->imagePath('settings', 'admin.svg'))],
+ 5 => [new Section('sessions', $this->l->t('Sessions'), 0, $this->url->imagePath('settings', 'admin.svg'))],
+ 10 => [new Section('app-passwords', $this->l->t('App passwords'), 0, $this->url->imagePath('settings', 'password.svg'))],
];
return $sections;
diff --git a/lib/private/Settings/Personal/AppPasswords.php b/lib/private/Settings/Personal/AppPasswords.php
new file mode 100644
index 00000000000..3f2886326d4
--- /dev/null
+++ b/lib/private/Settings/Personal/AppPasswords.php
@@ -0,0 +1,59 @@
+<?php
+/**
+ * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de>
+ *
+ * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OC\Settings\Personal;
+
+
+use OCP\AppFramework\Http\TemplateResponse;
+use OCP\Settings\ISettings;
+
+class AppPasswords implements ISettings {
+
+ /**
+ * @return TemplateResponse returns the instance with all parameters set, ready to be rendered
+ * @since 9.1
+ */
+ public function getForm() {
+ return new TemplateResponse('settings', 'settings/personal/app-passwords');
+ }
+
+ /**
+ * @return string the section ID, e.g. 'sharing'
+ * @since 9.1
+ */
+ public function getSection() {
+ return 'app-passwords';
+ }
+
+ /**
+ * @return int whether the form should be rather on the top or bottom of
+ * the admin section. The forms are arranged in ascending order of the
+ * priority values. It is required to return a value between 0 and 100.
+ *
+ * E.g.: 70
+ * @since 9.1
+ */
+ public function getPriority() {
+ return 5;
+ }
+}
diff --git a/settings/js/settings/sessions.js b/settings/js/settings/authtoken-init.js
index 953727e39dc..953727e39dc 100644
--- a/settings/js/settings/sessions.js
+++ b/settings/js/settings/authtoken-init.js
diff --git a/settings/templates/settings/personal/app-passwords.php b/settings/templates/settings/personal/app-passwords.php
new file mode 100644
index 00000000000..b9f8c4867e5
--- /dev/null
+++ b/settings/templates/settings/personal/app-passwords.php
@@ -0,0 +1,66 @@
+<?php
+/**
+ * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de>
+ *
+ * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+script('settings', [
+ 'authtoken',
+ 'authtoken_collection',
+ 'authtoken_view',
+ 'settings/authtoken-init'
+]);
+
+?>
+
+<div id="apppasswords" class="section">
+ <h2><?php p($l->t('App passwords'));?></h2>
+ <p class="settings-hint"><?php p($l->t('Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too.'));?></p>
+ <table class="icon-loading">
+ <thead class="hidden-when-empty">
+ <tr>
+ <th><?php p($l->t('Name'));?></th>
+ <th><?php p($l->t('Last activity'));?></th>
+ <th></th>
+ </tr>
+ </thead>
+ <tbody class="token-list">
+ </tbody>
+ </table>
+ <div id="app-password-form">
+ <input id="app-password-name" type="text" placeholder="<?php p($l->t('App name')); ?>">
+ <button id="add-app-password" class="button"><?php p($l->t('Create new app password')); ?></button>
+ </div>
+ <div id="app-password-result" class="hidden">
+ <span>
+ <?php p($l->t('Use the credentials below to configure your app or device.')); ?>
+ <?php p($l->t('For security reasons this password will only be shown once.')); ?>
+ </span>
+ <div class="app-password-row">
+ <span class="app-password-label"><?php p($l->t('Username')); ?></span>
+ <input id="new-app-login-name" type="text" readonly="readonly"/>
+ </div>
+ <div class="app-password-row">
+ <span class="app-password-label"><?php p($l->t('Password')); ?></span>
+ <input id="new-app-password" type="text" readonly="readonly"/>
+ <a class="clipboardButton icon icon-clippy" data-clipboard-target="#new-app-password"></a>
+ <button id="app-password-hide" class="button"><?php p($l->t('Done')); ?></button>
+ </div>
+ </div>
+</div>
diff --git a/settings/templates/settings/personal/personal.info.php b/settings/templates/settings/personal/personal.info.php
index dd271563c60..0e628e7e61c 100644
--- a/settings/templates/settings/personal/personal.info.php
+++ b/settings/templates/settings/personal/personal.info.php
@@ -30,10 +30,8 @@ script('settings', [
'federationscopemenu',
'settings/personalInfo',
]);
-style('settings', 'settings');
vendor_script('strengthify/jquery.strengthify');
vendor_style('strengthify/strengthify');
-script('files', 'jquery.fileupload');
vendor_script('jcrop/js/jquery.Jcrop');
vendor_style('jcrop/css/jquery.Jcrop');
diff --git a/settings/templates/settings/personal/sessions.php b/settings/templates/settings/personal/sessions.php
index 81613f0f277..60b38d6648c 100644
--- a/settings/templates/settings/personal/sessions.php
+++ b/settings/templates/settings/personal/sessions.php
@@ -25,7 +25,7 @@ script('settings', [
'authtoken',
'authtoken_collection',
'authtoken_view',
- 'settings/sessions'
+ 'settings/authtoken-init'
]);
?>