Merge remote-tracking branch 'johannesst/domain-limit' into domain-limit-main
This commit is contained in:
commit
e9cfc556d0
|
|
@ -67,7 +67,6 @@ class RegisterController extends Controller {
|
||||||
public function validateEmail() {
|
public function validateEmail() {
|
||||||
$email = $this->request->getParam('email');
|
$email = $this->request->getParam('email');
|
||||||
if ( !filter_var($email, FILTER_VALIDATE_EMAIL) ) {
|
if ( !filter_var($email, FILTER_VALIDATE_EMAIL) ) {
|
||||||
return new TemplateResponse('', 'error', array(array('error' => $this->l10n->t('Email address you entered is not valid'))), 'error');
|
|
||||||
return new TemplateResponse('', 'error', array(
|
return new TemplateResponse('', 'error', array(
|
||||||
'errors' => array(array(
|
'errors' => array(array(
|
||||||
'error' => $this->l10n->t('Email address you entered is not valid'),
|
'error' => $this->l10n->t('Email address you entered is not valid'),
|
||||||
|
|
@ -94,8 +93,34 @@ class RegisterController extends Controller {
|
||||||
), 'error');
|
), 'error');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// FEATURE: allow only from specific email domain
|
// FEATURE: allow only from specific email domain
|
||||||
|
|
||||||
|
$allowed_domains= $this->config->getAppValue($this->appName, 'allowed_domains','');
|
||||||
|
if ( ($allowed_domains === null) || ($allowed_domains === '') || ( strlen($allowed_domains)===0)){
|
||||||
|
}else{
|
||||||
|
$allowed_domains= explode (";",$allowed_domains);
|
||||||
|
$allowed=false;
|
||||||
|
$domains=array();
|
||||||
|
foreach ($allowed_domains as $domain ) {
|
||||||
|
$domains[]=$domain;//=$domain.print_unescaped("<br>").$domains;
|
||||||
|
$maildomain=explode("@",$email)[1];
|
||||||
|
// valid domain, everythings fine
|
||||||
|
if ($maildomain === $domain) {
|
||||||
|
$allowed=true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
// $allowed still false->return error message
|
||||||
|
if ( $allowed === false ) {
|
||||||
|
return new TemplateResponse('registration', 'domains', ['domains' =>
|
||||||
|
$domains
|
||||||
|
], 'guest');
|
||||||
|
}
|
||||||
|
}//else var_dump($allowed_domains);
|
||||||
|
|
||||||
|
|
||||||
$token = $this->pendingreg->save($email);
|
$token = $this->pendingreg->save($email);
|
||||||
//TODO: check for error
|
//TODO: check for error
|
||||||
$link = $this->urlgenerator->linkToRoute('registration.register.verifyToken', array('token' => $token));
|
$link = $this->urlgenerator->linkToRoute('registration.register.verifyToken', array('token' => $token));
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ use \OCP\AppFramework\Controller;
|
||||||
use \OCP\IGroupManager;
|
use \OCP\IGroupManager;
|
||||||
use \OCP\IL10N;
|
use \OCP\IL10N;
|
||||||
use \OCP\IConfig;
|
use \OCP\IConfig;
|
||||||
|
use \OCP\IUser;
|
||||||
|
|
||||||
class SettingsController extends Controller {
|
class SettingsController extends Controller {
|
||||||
|
|
||||||
|
|
@ -35,13 +36,21 @@ class SettingsController extends Controller {
|
||||||
parent::__construct($appName, $request);
|
parent::__construct($appName, $request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @AdminRequired
|
* @AdminRequired
|
||||||
*
|
*
|
||||||
* @param string $registered_user_group all newly registered user will be put in this group
|
* @param string $registered_user_group all newly registered user will be put in this group
|
||||||
|
* @param string $allowed_domains Registrations are only allowed for E-Mailadresses with these domains
|
||||||
* @return DataResponse
|
* @return DataResponse
|
||||||
*/
|
*/
|
||||||
public function admin($registered_user_group) {
|
public function admin($registered_user_group, $allowed_domains) {
|
||||||
|
if ( ( $allowed_domains==='' ) || ( $allowed_domains === NULL ) ){
|
||||||
|
$this->config->deleteAppValue($this->appName, 'allowed_domains');
|
||||||
|
}else{
|
||||||
|
$this->config->setAppValue($this->appName, 'allowed_domains', $allowed_domains);
|
||||||
|
}
|
||||||
$groups = $this->groupmanager->search('');
|
$groups = $this->groupmanager->search('');
|
||||||
foreach ( $groups as $group ) {
|
foreach ( $groups as $group ) {
|
||||||
$group_id_list[] = $group->getGid();
|
$group_id_list[] = $group->getGid();
|
||||||
|
|
@ -80,9 +89,11 @@ class SettingsController extends Controller {
|
||||||
}
|
}
|
||||||
// TODO selected
|
// TODO selected
|
||||||
$current_value = $this->config->getAppValue($this->appName, 'registered_user_group', 'none');
|
$current_value = $this->config->getAppValue($this->appName, 'registered_user_group', 'none');
|
||||||
|
$allowed_domains = $this->config->getAppValue($this->appName, 'allowed_domains', '');
|
||||||
return new TemplateResponse('registration', 'admin', [
|
return new TemplateResponse('registration', 'admin', [
|
||||||
'groups' => $group_id_list,
|
'groups' => $group_id_list,
|
||||||
'current' => $current_value
|
'current' => $current_value,
|
||||||
|
'allowed' => $allowed_domains
|
||||||
], '');
|
], '');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
function saveSettings() {
|
function saveSettings() {
|
||||||
var post = $('#registered_user_group').serialize();
|
var post = $('#registration').serialize();
|
||||||
|
|
||||||
$.post(OC.generateUrl('/apps/registration/settings'), post);
|
$.post(OC.generateUrl('/apps/registration/settings'), post);
|
||||||
}
|
}
|
||||||
|
|
||||||
$('#registered_user_group').change(saveSettings);
|
$('#registered_user_group').change(saveSettings);
|
||||||
|
$('#allowed_domains').change(saveSettings);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,11 @@ OC.L10N.register(
|
||||||
"No such group" : "Keine derartige Gruppe",
|
"No such group" : "Keine derartige Gruppe",
|
||||||
"Registration" : "Registrierung",
|
"Registration" : "Registrierung",
|
||||||
"Default group that all registered users belong" : "Standardgruppe, zu der alle registrierten Benutzer gehören",
|
"Default group that all registered users belong" : "Standardgruppe, zu der alle registrierten Benutzer gehören",
|
||||||
|
"Enter a semicolon-seperated list of allowed domains. Example: owncloud.com;github.com" : "Geben Sie die freigeschalteten, durch Semikolons getrennten, Domains ein. Beispiel: owncloud.com;github.com",
|
||||||
"None" : "Keine",
|
"None" : "Keine",
|
||||||
|
"Allowed domains for registration" : "Für Registrierung freigeschaltete Domains",
|
||||||
|
"Registration is only allowed for following domains:" : "Registrierung ist nur für folgende Domains freigeschaltet:",
|
||||||
|
"Save" : "Speichern",
|
||||||
"To create a new account on ownCloud, just click the following link:<br/><br/>\n<a href=\"{link}\">{link}</a>" : "Bitte klicke auf den folgenden Link, um ein neues ownCloud-Konto zu erstellen:<br/><br/>\n<a href=\"{link}\">{link}</a>",
|
"To create a new account on ownCloud, just click the following link:<br/><br/>\n<a href=\"{link}\">{link}</a>" : "Bitte klicke auf den folgenden Link, um ein neues ownCloud-Konto zu erstellen:<br/><br/>\n<a href=\"{link}\">{link}</a>",
|
||||||
"Welcome, you can create your account below." : "Willkommen, Du kannst im unteren Teil Dein Konto anlegen.",
|
"Welcome, you can create your account below." : "Willkommen, Du kannst im unteren Teil Dein Konto anlegen.",
|
||||||
"Username" : "Benutzername",
|
"Username" : "Benutzername",
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,11 @@
|
||||||
"No such group" : "Keine derartige Gruppe",
|
"No such group" : "Keine derartige Gruppe",
|
||||||
"Registration" : "Registrierung",
|
"Registration" : "Registrierung",
|
||||||
"Default group that all registered users belong" : "Standardgruppe, zu der alle registrierten Benutzer gehören",
|
"Default group that all registered users belong" : "Standardgruppe, zu der alle registrierten Benutzer gehören",
|
||||||
|
"Enter a semicolon-seperated list of allowed domains. Example: owncloud.com;github.com" : "Geben Sie die freigeschalteten, durch Semikolons getrennten, Domains ein. Beispiel: owncloud.com;github.com",
|
||||||
"None" : "Keine",
|
"None" : "Keine",
|
||||||
|
"Allowed domains for registration" : "Für Registrierung freigeschaltete Domains",
|
||||||
|
"Registration is only allowed for following domains:" : "Registrierung ist nur für folgende Domains freigeschaltet:",
|
||||||
|
"Save" : "Speichern",
|
||||||
"To create a new account on ownCloud, just click the following link:<br/><br/>\n<a href=\"{link}\">{link}</a>" : "Bitte klicke auf den folgenden Link, um ein neues ownCloud-Konto zu erstellen:<br/><br/>\n<a href=\"{link}\">{link}</a>",
|
"To create a new account on ownCloud, just click the following link:<br/><br/>\n<a href=\"{link}\">{link}</a>" : "Bitte klicke auf den folgenden Link, um ein neues ownCloud-Konto zu erstellen:<br/><br/>\n<a href=\"{link}\">{link}</a>",
|
||||||
"Welcome, you can create your account below." : "Willkommen, Du kannst im unteren Teil Dein Konto anlegen.",
|
"Welcome, you can create your account below." : "Willkommen, Du kannst im unteren Teil Dein Konto anlegen.",
|
||||||
"Username" : "Benutzername",
|
"Username" : "Benutzername",
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,11 @@ $TRANSLATIONS = array(
|
||||||
"No such group" => "Keine derartige Gruppe",
|
"No such group" => "Keine derartige Gruppe",
|
||||||
"Registration" => "Registrierung",
|
"Registration" => "Registrierung",
|
||||||
"Default group that all registered users belong" => "Standardgruppe, zu der alle registrierten Benutzer gehören",
|
"Default group that all registered users belong" => "Standardgruppe, zu der alle registrierten Benutzer gehören",
|
||||||
|
"Enter a semicolon-seperated list of allowed domains. Example: owncloud.com;github.com" => "Geben Sie die freigeschalteten, durch Semikolons getrennten, Domains ein. Beispiel: owncloud.com;github.com",
|
||||||
"None" => "Keine",
|
"None" => "Keine",
|
||||||
|
"Allowed domains for registration" => "Für Registrierung freigeschaltete Domains",
|
||||||
|
"Registration is only allowed for following domains:" => "Registrierung ist nur für folgende Domains freigeschaltet:",
|
||||||
|
"Save" => "Speichern",
|
||||||
"To create a new account on ownCloud, just click the following link:<br/><br/>\n<a href=\"{link}\">{link}</a>" => "Bitte klicke auf den folgenden Link, um ein neues ownCloud-Konto zu erstellen:<br/><br/>\n<a href=\"{link}\">{link}</a>",
|
"To create a new account on ownCloud, just click the following link:<br/><br/>\n<a href=\"{link}\">{link}</a>" => "Bitte klicke auf den folgenden Link, um ein neues ownCloud-Konto zu erstellen:<br/><br/>\n<a href=\"{link}\">{link}</a>",
|
||||||
"Welcome, you can create your account below." => "Willkommen, Du kannst im unteren Teil Dein Konto anlegen.",
|
"Welcome, you can create your account below." => "Willkommen, Du kannst im unteren Teil Dein Konto anlegen.",
|
||||||
"Username" => "Benutzername",
|
"Username" => "Benutzername",
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,11 @@ OC.L10N.register(
|
||||||
"No such group" : "Keine derartige Gruppe",
|
"No such group" : "Keine derartige Gruppe",
|
||||||
"Registration" : "Registrierung",
|
"Registration" : "Registrierung",
|
||||||
"Default group that all registered users belong" : "Standardgruppe, zu der alle registrierten Benutzer gehören",
|
"Default group that all registered users belong" : "Standardgruppe, zu der alle registrierten Benutzer gehören",
|
||||||
|
"Enter a semicolon-seperated list of allowed domains. Example: owncloud.com;github.com" : "Geben Sie die freigeschalteten, durch Semikolons getrennten, Domains ein. Beispiel: owncloud.com;github.com",
|
||||||
"None" : "Keine",
|
"None" : "Keine",
|
||||||
|
"Allowed domains for registration" : "Für Registrierung freigeschaltete Domains",
|
||||||
|
"Registration is only allowed for following domains:" : "Registrierung ist nur für folgende Domains freigeschaltet:",
|
||||||
|
"Save" : "Speichern",
|
||||||
"To create a new account on ownCloud, just click the following link:<br/><br/>\n<a href=\"{link}\">{link}</a>" : "Bitte klicken Sie auf den folgenden Link, um ein neues ownCloud-Konto zu erstellen:<br/><br/>\n<a href=\"{link}\">{link}</a>",
|
"To create a new account on ownCloud, just click the following link:<br/><br/>\n<a href=\"{link}\">{link}</a>" : "Bitte klicken Sie auf den folgenden Link, um ein neues ownCloud-Konto zu erstellen:<br/><br/>\n<a href=\"{link}\">{link}</a>",
|
||||||
"Welcome, you can create your account below." : "Willkommen, Sie können im unteren Teil Ihr Konto anlegen.",
|
"Welcome, you can create your account below." : "Willkommen, Sie können im unteren Teil Ihr Konto anlegen.",
|
||||||
"Username" : "Benutzername",
|
"Username" : "Benutzername",
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,12 @@
|
||||||
"No such group" : "Keine derartige Gruppe",
|
"No such group" : "Keine derartige Gruppe",
|
||||||
"Registration" : "Registrierung",
|
"Registration" : "Registrierung",
|
||||||
"Default group that all registered users belong" : "Standardgruppe, zu der alle registrierten Benutzer gehören",
|
"Default group that all registered users belong" : "Standardgruppe, zu der alle registrierten Benutzer gehören",
|
||||||
|
"Enter a semicolon-seperated list of allowed domains. Example: owncloud.com;github.com" : "Geben Sie die freigeschalteten, durch Semikolons getrennten, Domains ein. Beispiel: owncloud.com;github.com",
|
||||||
"None" : "Keine",
|
"None" : "Keine",
|
||||||
|
"Allowed domains for registration" : "Für Registrierung freigeschaltete Domains",
|
||||||
|
"Registration is only allowed for following domains:" : "Registrierung ist nur für folgende Domains freigeschaltet:",
|
||||||
|
"Save" : "Speichern",
|
||||||
|
=======
|
||||||
"To create a new account on ownCloud, just click the following link:<br/><br/>\n<a href=\"{link}\">{link}</a>" : "Bitte klicken Sie auf den folgenden Link, um ein neues ownCloud-Konto zu erstellen:<br/><br/>\n<a href=\"{link}\">{link}</a>",
|
"To create a new account on ownCloud, just click the following link:<br/><br/>\n<a href=\"{link}\">{link}</a>" : "Bitte klicken Sie auf den folgenden Link, um ein neues ownCloud-Konto zu erstellen:<br/><br/>\n<a href=\"{link}\">{link}</a>",
|
||||||
"Welcome, you can create your account below." : "Willkommen, Sie können im unteren Teil Ihr Konto anlegen.",
|
"Welcome, you can create your account below." : "Willkommen, Sie können im unteren Teil Ihr Konto anlegen.",
|
||||||
"Username" : "Benutzername",
|
"Username" : "Benutzername",
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,11 @@ $TRANSLATIONS = array(
|
||||||
"No such group" => "Keine derartige Gruppe",
|
"No such group" => "Keine derartige Gruppe",
|
||||||
"Registration" => "Registrierung",
|
"Registration" => "Registrierung",
|
||||||
"Default group that all registered users belong" => "Standardgruppe, zu der alle registrierten Benutzer gehören",
|
"Default group that all registered users belong" => "Standardgruppe, zu der alle registrierten Benutzer gehören",
|
||||||
|
"Enter a semicolon-seperated list of allowed domains. Example: owncloud.com;github.com" => "Geben Sie die freigeschalteten, durch Semikolons getrennten, Domains ein. Beispiel: owncloud.com;github.com",
|
||||||
"None" => "Keine",
|
"None" => "Keine",
|
||||||
|
"Allowed domains for registration" => "Für Registrierung freigeschaltete Domains",
|
||||||
|
"Registration is only allowed for following domains:" => "Registrierung ist nur für folgende Domains freigeschaltet:",
|
||||||
|
"Save" => "Speichern",
|
||||||
"To create a new account on ownCloud, just click the following link:<br/><br/>\n<a href=\"{link}\">{link}</a>" => "Bitte klicken Sie auf den folgenden Link, um ein neues ownCloud-Konto zu erstellen:<br/><br/>\n<a href=\"{link}\">{link}</a>",
|
"To create a new account on ownCloud, just click the following link:<br/><br/>\n<a href=\"{link}\">{link}</a>" => "Bitte klicken Sie auf den folgenden Link, um ein neues ownCloud-Konto zu erstellen:<br/><br/>\n<a href=\"{link}\">{link}</a>",
|
||||||
"Welcome, you can create your account below." => "Willkommen, Sie können im unteren Teil Ihr Konto anlegen.",
|
"Welcome, you can create your account below." => "Willkommen, Sie können im unteren Teil Ihr Konto anlegen.",
|
||||||
"Username" => "Benutzername",
|
"Username" => "Benutzername",
|
||||||
|
|
|
||||||
|
|
@ -15,4 +15,13 @@ foreach ( $_['groups'] as $group ) {
|
||||||
?>
|
?>
|
||||||
</select>
|
</select>
|
||||||
</p>
|
</p>
|
||||||
|
<p>
|
||||||
|
<label for="allowed_domains"><?php p($l->t('Allowed domains for registration')); ?></label>
|
||||||
|
<input type="text" id="allowed_domains" name="allowed_domains" value=<?php p($_['allowed']);?>>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<em><?php p($l->t('Enter a semicolon-seperated list of allowed domains. Example: owncloud.com;github.com'));?>
|
||||||
|
</em>
|
||||||
|
</p>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
<?php
|
||||||
|
\OCP\Util::addStyle('registration', 'style');
|
||||||
|
?>
|
||||||
|
<ul class="error-wide">
|
||||||
|
<li class='error'><?php p($l->t('Registration is only allowed for following domains:')); ?>
|
||||||
|
<?php
|
||||||
|
foreach ($_['domains'] as $domain ){
|
||||||
|
echo "<p class='hint'>";
|
||||||
|
p($domain);
|
||||||
|
echo "</p>";
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
Loading…
Reference in New Issue