diff --git a/lib/private/Settings/Manager.php b/lib/private/Settings/Manager.php index 10f7224b9a..f914ac634f 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 0000000000..3f2886326d --- /dev/null +++ b/lib/private/Settings/Personal/AppPasswords.php @@ -0,0 +1,59 @@ + + * + * @author Arthur Schiwon + * + * @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 . + * + */ + +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 similarity index 100% rename from settings/js/settings/sessions.js rename to 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 0000000000..b9f8c4867e --- /dev/null +++ b/settings/templates/settings/personal/app-passwords.php @@ -0,0 +1,66 @@ + + * + * @author Arthur Schiwon + * + * @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 . + * + */ +script('settings', [ + 'authtoken', + 'authtoken_collection', + 'authtoken_view', + 'settings/authtoken-init' +]); + +?> + +
+

t('App passwords'));?>

+

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.'));?>

+ + + + + + + + + + +
t('Name'));?>t('Last activity'));?>
+
+ + +
+ +
diff --git a/settings/templates/settings/personal/personal.info.php b/settings/templates/settings/personal/personal.info.php index dd271563c6..0e628e7e61 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 81613f0f27..60b38d6648 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' ]); ?>