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();
|
$form = new Personal\Sessions();
|
||||||
$forms[$form->getPriority()] = [$form];
|
$forms[$form->getPriority()] = [$form];
|
||||||
}
|
}
|
||||||
|
if($section === 'app-passwords') {
|
||||||
|
/** @var ISettings $form */
|
||||||
|
$form = new Personal\AppPasswords();
|
||||||
|
$forms[$form->getPriority()] = [$form];
|
||||||
|
}
|
||||||
} catch (QueryException $e) {
|
} catch (QueryException $e) {
|
||||||
// skip
|
// skip
|
||||||
}
|
}
|
||||||
|
@ -410,7 +415,8 @@ class Manager implements IManager {
|
||||||
public function getPersonalSections() {
|
public function getPersonalSections() {
|
||||||
$sections = [
|
$sections = [
|
||||||
0 => [new Section('personal-info', $this->l->t('Personal info'), 0, $this->url->imagePath('core', 'actions/info.svg'))],
|
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;
|
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',
|
'federationscopemenu',
|
||||||
'settings/personalInfo',
|
'settings/personalInfo',
|
||||||
]);
|
]);
|
||||||
style('settings', 'settings');
|
|
||||||
vendor_script('strengthify/jquery.strengthify');
|
vendor_script('strengthify/jquery.strengthify');
|
||||||
vendor_style('strengthify/strengthify');
|
vendor_style('strengthify/strengthify');
|
||||||
script('files', 'jquery.fileupload');
|
|
||||||
vendor_script('jcrop/js/jquery.Jcrop');
|
vendor_script('jcrop/js/jquery.Jcrop');
|
||||||
vendor_style('jcrop/css/jquery.Jcrop');
|
vendor_style('jcrop/css/jquery.Jcrop');
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ script('settings', [
|
||||||
'authtoken',
|
'authtoken',
|
||||||
'authtoken_collection',
|
'authtoken_collection',
|
||||||
'authtoken_view',
|
'authtoken_view',
|
||||||
'settings/sessions'
|
'settings/authtoken-init'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
Loading…
Reference in a new issue