take over app passwords
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
This commit is contained in:
parent
489ac4391b
commit
8c076e0bda
6 changed files with 133 additions and 4 deletions
|
@ -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;
|
||||
|
|
59
lib/private/Settings/Personal/AppPasswords.php
Normal file
59
lib/private/Settings/Personal/AppPasswords.php
Normal file
|
@ -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;
|
||||
}
|
||||
}
|
66
settings/templates/settings/personal/app-passwords.php
Normal file
66
settings/templates/settings/personal/app-passwords.php
Normal file
|
@ -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>
|
|
@ -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');
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ script('settings', [
|
|||
'authtoken',
|
||||
'authtoken_collection',
|
||||
'authtoken_view',
|
||||
'settings/sessions'
|
||||
'settings/authtoken-init'
|
||||
]);
|
||||
|
||||
?>
|
||||
|
|
Loading…
Reference in a new issue