Einiger Stylekrams
This commit is contained in:
parent
ec42146b57
commit
3d07ca9dc0
2
Makefile
2
Makefile
|
|
@ -1,6 +1,6 @@
|
||||||
# Makefile for building the project
|
# Makefile for building the project
|
||||||
|
|
||||||
app_name=registration
|
app_name=da_registration
|
||||||
|
|
||||||
project_dir=$(CURDIR)/../$(app_name)
|
project_dir=$(CURDIR)/../$(app_name)
|
||||||
build_dir=$(CURDIR)/build/artifacts
|
build_dir=$(CURDIR)/build/artifacts
|
||||||
|
|
|
||||||
|
|
@ -1,42 +1,17 @@
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<info xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
|
<info xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd">
|
xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd">
|
||||||
<id>registration</id>
|
<id>da_registration</id>
|
||||||
<name>Registration</name>
|
<name>DA Registration</name>
|
||||||
<summary>This app allows users to self-register a new account using their email address.</summary>
|
<namespace>Registration</namespace>
|
||||||
<description><![CDATA[User registration
|
<description></description>
|
||||||
|
<version>1.5.0</version>
|
||||||
This app allows users to register a new account.
|
|
||||||
|
|
||||||
# Features
|
|
||||||
|
|
||||||
- Add users to a given group
|
|
||||||
- Allow-list with email domains (including wildcard) to register with
|
|
||||||
- Admins will be notified via email for new user creation or require approval
|
|
||||||
- Supports Nextcloud's Client Login Flow v1 and v2 - allowing registration in the mobile Apps and Desktop clients
|
|
||||||
|
|
||||||
# Web form registration flow
|
|
||||||
|
|
||||||
1. User enters their email address
|
|
||||||
2. Verification link is sent to the email address
|
|
||||||
3. User clicks on the verification link
|
|
||||||
4. User is lead to a form where they can choose their username and password
|
|
||||||
5. New account is created and is logged in automatically
|
|
||||||
]]></description>
|
|
||||||
<version>1.4.0</version>
|
|
||||||
<licence>agpl</licence>
|
<licence>agpl</licence>
|
||||||
<author mail="pellaeon@cnmc.tw" homepage="https://nyllep.wordpress.com/about-2">Pellaeon Lin</author>
|
|
||||||
<types>
|
<types>
|
||||||
<prevent_group_restriction />
|
<prevent_group_restriction />
|
||||||
</types>
|
</types>
|
||||||
<category>security</category>
|
<category>security</category>
|
||||||
<category>tools</category>
|
<category>tools</category>
|
||||||
<website>https://github.com/nextcloud/registration</website>
|
|
||||||
<bugs>https://github.com/nextcloud/registration/issues</bugs>
|
|
||||||
<repository>https://github.com/nextcloud/registration</repository>
|
|
||||||
<screenshot>https://raw.githubusercontent.com/nextcloud/registration/master/docs/screenshot.png</screenshot>
|
|
||||||
<screenshot>https://raw.githubusercontent.com/nextcloud/registration/master/docs/demo.gif</screenshot>
|
|
||||||
<screenshot>https://raw.githubusercontent.com/nextcloud/registration/master/docs/admin-settings.png</screenshot>
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<nextcloud min-version="20" max-version="23" />
|
<nextcloud min-version="20" max-version="23" />
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,4 @@
|
||||||
<?php
|
<?php
|
||||||
/**
|
|
||||||
* ownCloud - registration
|
|
||||||
*
|
|
||||||
* This file is licensed under the Affero General Public License version 3 or
|
|
||||||
* later. See the COPYING file.
|
|
||||||
*
|
|
||||||
* @author Pellaeon Lin <pellaeon@hs.ntnu.edu.tw>
|
|
||||||
* @author Julius Härtl <jus@bitgrid.net>
|
|
||||||
* @copyright Pellaeon Lin 2014
|
|
||||||
*/
|
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'routes' => [
|
'routes' => [
|
||||||
['name' => 'settings#admin', 'url' => '/settings', 'verb' => 'POST'],
|
['name' => 'settings#admin', 'url' => '/settings', 'verb' => 'POST'],
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@
|
||||||
"OCA\\Registration\\": "lib/"
|
"OCA\\Registration\\": "lib/"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "nextcloud/registration",
|
"name": "nextcloud/da_registration",
|
||||||
"description": "registration",
|
"description": "da_registration",
|
||||||
"license": "AGPL",
|
"license": "AGPL",
|
||||||
"require": {
|
"require": {
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,10 @@
|
||||||
#alternative-logins:not(.alternative-logins) .button.register-button {
|
#alternative-logins:not(.alternative-logins) .button.register-button {
|
||||||
color: var(--color-primary-element);
|
color: var(--color-primary-element);
|
||||||
|
background-color: red;
|
||||||
}
|
}
|
||||||
#alternative-logins.alternative-logins .button.register-button {
|
#alternative-logins.alternative-logins .button.register-button {
|
||||||
color: var(--color-primary-text);
|
color: red;
|
||||||
|
background-color: red;
|
||||||
}
|
}
|
||||||
|
|
||||||
#alternative-logins .register-button:only-child {
|
#alternative-logins .register-button:only-child {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
/******/ (function() { // webpackBootstrap
|
||||||
|
/******/ "use strict";
|
||||||
|
var __webpack_exports__ = {};
|
||||||
|
/*!*********************!*\
|
||||||
|
!*** ./src/form.js ***!
|
||||||
|
\*********************/
|
||||||
|
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
// Password toggle
|
||||||
|
$('#showadminpass').click(function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
var passwordTextField = $('#password');
|
||||||
|
|
||||||
|
if (passwordTextField.attr('type') === 'password') {
|
||||||
|
passwordTextField.attr('type', 'text');
|
||||||
|
} else {
|
||||||
|
passwordTextField.attr('type', 'password');
|
||||||
|
}
|
||||||
|
}); // Disable submit after first click
|
||||||
|
|
||||||
|
$('form').submit(function () {
|
||||||
|
// prevent duplicate form submissions
|
||||||
|
$(_this).find(':submit').attr('disabled', 'disabled');
|
||||||
|
$(_this).find(':submit')[0].value = t('registration', 'Loading …');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
/******/ })()
|
||||||
|
;
|
||||||
|
//# sourceMappingURL=da_registration-form.js.map?v=f64a2674d0a4e7f46973
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
{"version":3,"file":"da_registration-form.js?v=f64a2674d0a4e7f46973","sources":["webpack:///da_registration/src/form.js"],"sourcesContent":["\"use strict\";\n\ndocument.addEventListener('DOMContentLoaded', function () {\n var _this = this;\n\n // Password toggle\n $('#showadminpass').click(function (e) {\n e.preventDefault();\n var passwordTextField = $('#password');\n\n if (passwordTextField.attr('type') === 'password') {\n passwordTextField.attr('type', 'text');\n } else {\n passwordTextField.attr('type', 'password');\n }\n }); // Disable submit after first click\n\n $('form').submit(function () {\n // prevent duplicate form submissions\n $(_this).find(':submit').attr('disabled', 'disabled');\n $(_this).find(':submit')[0].value = t('registration', 'Loading …');\n });\n});"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A","sourceRoot":""}
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,2 +1,32 @@
|
||||||
!function(){"use strict";document.addEventListener("DOMContentLoaded",(function(){var a=this;$("#showadminpass").click((function(t){t.preventDefault();var a=$("#password");"password"===a.attr("type")?a.attr("type","text"):a.attr("type","password")})),$("form").submit((function(){$(a).find(":submit").attr("disabled","disabled"),$(a).find(":submit")[0].value=t("registration","Loading …")}))}))}();
|
/******/ (function() { // webpackBootstrap
|
||||||
//# sourceMappingURL=registration-form.js.map?v=2f99bd8b8e2f96df0fe1
|
/******/ "use strict";
|
||||||
|
var __webpack_exports__ = {};
|
||||||
|
/*!*********************!*\
|
||||||
|
!*** ./src/form.js ***!
|
||||||
|
\*********************/
|
||||||
|
|
||||||
|
|
||||||
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
// Password toggle
|
||||||
|
$('#showadminpass').click(function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
var passwordTextField = $('#password');
|
||||||
|
|
||||||
|
if (passwordTextField.attr('type') === 'password') {
|
||||||
|
passwordTextField.attr('type', 'text');
|
||||||
|
} else {
|
||||||
|
passwordTextField.attr('type', 'password');
|
||||||
|
}
|
||||||
|
}); // Disable submit after first click
|
||||||
|
|
||||||
|
$('form').submit(function () {
|
||||||
|
// prevent duplicate form submissions
|
||||||
|
$(_this).find(':submit').attr('disabled', 'disabled');
|
||||||
|
$(_this).find(':submit')[0].value = t('registration', 'Loading …');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
/******/ })()
|
||||||
|
;
|
||||||
|
//# sourceMappingURL=registration-form.js.map?v=16159a8c95b8418d822a
|
||||||
|
|
@ -1 +1 @@
|
||||||
{"version":3,"sources":["webpack:///registration/src/form.js"],"names":["document","addEventListener","$","click","e","preventDefault","passwordTextField","attr","submit","find","value","t"],"mappings":"yBAAAA,SAASC,iBAAiB,oBAAoB,WAAW,WAExDC,EAAE,kBAAkBC,OAAM,SAACC,GAC1BA,EAAEC,iBACF,IAAMC,EAAoBJ,EAAE,aACW,aAAnCI,EAAkBC,KAAK,QAC1BD,EAAkBC,KAAK,OAAQ,QAE/BD,EAAkBC,KAAK,OAAQ,eAKjCL,EAAE,QAAQM,QAAO,WAEhBN,EAAE,GAAMO,KAAK,WAAWF,KAAK,WAAY,YACzCL,EAAE,GAAMO,KAAK,WAAW,GAAGC,MAAQC,EAAE,eAAgB,mB","file":"registration-form.js?v=2f99bd8b8e2f96df0fe1","sourcesContent":["document.addEventListener('DOMContentLoaded', function() {\n\t// Password toggle\n\t$('#showadminpass').click((e) => {\n\t\te.preventDefault()\n\t\tconst passwordTextField = $('#password')\n\t\tif (passwordTextField.attr('type') === 'password') {\n\t\t\tpasswordTextField.attr('type', 'text')\n\t\t} else {\n\t\t\tpasswordTextField.attr('type', 'password')\n\t\t}\n\t})\n\n\t// Disable submit after first click\n\t$('form').submit(() => {\n\t\t// prevent duplicate form submissions\n\t\t$(this).find(':submit').attr('disabled', 'disabled')\n\t\t$(this).find(':submit')[0].value = t('registration', 'Loading …')\n\t})\n})\n"],"sourceRoot":""}
|
{"version":3,"file":"registration-form.js?v=16159a8c95b8418d822a","sources":["webpack:///registration/src/form.js"],"sourcesContent":["\"use strict\";\n\ndocument.addEventListener('DOMContentLoaded', function () {\n var _this = this;\n\n // Password toggle\n $('#showadminpass').click(function (e) {\n e.preventDefault();\n var passwordTextField = $('#password');\n\n if (passwordTextField.attr('type') === 'password') {\n passwordTextField.attr('type', 'text');\n } else {\n passwordTextField.attr('type', 'password');\n }\n }); // Disable submit after first click\n\n $('form').submit(function () {\n // prevent duplicate form submissions\n $(_this).find(':submit').attr('disabled', 'disabled');\n $(_this).find(':submit')[0].value = t('registration', 'Loading …');\n });\n});"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;A","sourceRoot":""}
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,27 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
/**
|
|
||||||
* @copyright Copyright (c) 2017 Julius Härtl <jus@bitgrid.net>
|
|
||||||
*
|
|
||||||
* @author Julius Härtl <jus@bitgrid.net>
|
|
||||||
*
|
|
||||||
* @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 OCA\Registration\AppInfo;
|
namespace OCA\Registration\AppInfo;
|
||||||
|
|
||||||
|
|
@ -33,7 +13,7 @@ use OCP\AppFramework\Bootstrap\IBootstrap;
|
||||||
use OCP\AppFramework\Bootstrap\IRegistrationContext;
|
use OCP\AppFramework\Bootstrap\IRegistrationContext;
|
||||||
|
|
||||||
class Application extends App implements IBootstrap {
|
class Application extends App implements IBootstrap {
|
||||||
public const APP_ID = 'registration';
|
public const APP_ID = 'da_registration';
|
||||||
|
|
||||||
public function __construct() {
|
public function __construct() {
|
||||||
parent::__construct(self::APP_ID);
|
parent::__construct(self::APP_ID);
|
||||||
|
|
|
||||||
|
|
@ -2,17 +2,6 @@
|
||||||
|
|
||||||
declare(strict_types=1);
|
declare(strict_types=1);
|
||||||
|
|
||||||
/**
|
|
||||||
* ownCloud - registration
|
|
||||||
*
|
|
||||||
* This file is licensed under the Affero General Public License version 3 or
|
|
||||||
* later. See the COPYING file.
|
|
||||||
*
|
|
||||||
* @author Pellaeon Lin <pellaeon@hs.ntnu.edu.tw>
|
|
||||||
* @author Julius Härtl <jus@bitgrid.net>
|
|
||||||
* @author 2020 Joas Schilling <coding@schilljs.com>
|
|
||||||
* @copyright Pellaeon Lin 2014
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace OCA\Registration\Controller;
|
namespace OCA\Registration\Controller;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,5 @@
|
||||||
<?php
|
<?php
|
||||||
/**
|
|
||||||
* ownCloud - registration
|
|
||||||
*
|
|
||||||
* This file is licensed under the Affero General Public License version 3 or
|
|
||||||
* later. See the COPYING file.
|
|
||||||
*
|
|
||||||
* @author Pellaeon Lin <pellaeon@cnmc.tw>
|
|
||||||
* @author Julius Härtl <jus@bitgrid.net>
|
|
||||||
* @copyright Pellaeon Lin 2015
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace OCA\Registration\Controller;
|
namespace OCA\Registration\Controller;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -104,7 +104,7 @@ class MailService {
|
||||||
|
|
||||||
$template->setSubject($subject);
|
$template->setSubject($subject);
|
||||||
$template->addHeader();
|
$template->addHeader();
|
||||||
$template->addHeading($this->l10n->t('Registration'));
|
$template->addHeading($this->l10n->t('registration'));
|
||||||
|
|
||||||
$body = $this->l10n->t('Email address verified, you can now complete your registration.');
|
$body = $this->l10n->t('Email address verified, you can now complete your registration.');
|
||||||
if (!$this->loginFlowService->isUsingLoginFlow()) {
|
if (!$this->loginFlowService->isUsingLoginFlow()) {
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@ class RegistrationSettingsSection implements IIconSection {
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getName(): string {
|
public function getName(): string {
|
||||||
return $this->l10n->t('Registration');
|
return $this->l10n->t('registration');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
{
|
{
|
||||||
"name": "registration",
|
"name": "da_registration",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
|
"name": "da_registration",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
@ -24,7 +25,8 @@
|
||||||
"@nextcloud/webpack-vue-config": "^4.0.3"
|
"@nextcloud/webpack-vue-config": "^4.0.3"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14.0.0"
|
"node": ">=14.0.0",
|
||||||
|
"npm": ">=7.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/cli": {
|
"node_modules/@babel/cli": {
|
||||||
|
|
@ -5565,11 +5567,13 @@
|
||||||
"version": "2.3.2",
|
"version": "2.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
||||||
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
||||||
|
"dev": true,
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"optional": true,
|
"optional": true,
|
||||||
"os": [
|
"os": [
|
||||||
"darwin"
|
"darwin"
|
||||||
],
|
],
|
||||||
|
"peer": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||||
}
|
}
|
||||||
|
|
@ -16337,7 +16341,9 @@
|
||||||
"version": "2.3.2",
|
"version": "2.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
||||||
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
||||||
"optional": true
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"peer": true
|
||||||
},
|
},
|
||||||
"function-bind": {
|
"function-bind": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"name": "registration",
|
"name": "da_registration",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,6 @@
|
||||||
/** @var array $_ */
|
/** @var array $_ */
|
||||||
/** @var \OCP\IL10N $l */
|
/** @var \OCP\IL10N $l */
|
||||||
script('registration', 'registration-settings');
|
script('registration', 'registration-settings');
|
||||||
style('registration', 'settings');
|
style('da_registration', 'settings');
|
||||||
?>
|
?>
|
||||||
<div id="registration_settings_form"></div>
|
<div id="registration_settings_form"></div>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
/** @var array $_ */
|
/** @var array $_ */
|
||||||
/** @var \OCP\IL10N $l */
|
/** @var \OCP\IL10N $l */
|
||||||
style('registration', 'style');
|
style('da_registration', 'style');
|
||||||
?>
|
?>
|
||||||
<div class="error">
|
<div class="error">
|
||||||
<h2><?php p($l->t('Approval required')) ?></h2>
|
<h2><?php p($l->t('Approval required')) ?></h2>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue