Skip to content
Code-Schnipsel Gruppen Projekte
Commit c63b4b82 erstellt von Patrick Müller's avatar Patrick Müller
Dateien durchsuchen

Merge branch 'dev'

Übergeordnete 0598846a 6df711b4
No related branches found
No related tags found
2 Merge Requests!5Update 'next-2.x' with latest changes from 'main',!3Add QUIQQER Tooling
authgoogle2fa
![QUIQQER Google Authenticator](bin/images/Readme.jpg)
QUIQQER Google Authenticator
========
QUIQQER Authentication with Google Authenticator
This module an authentication option for QUIQQER. Backend user accounts can be connected with Google Authenticator
and sign in with a secure code that is periodically regenerated.
Google Authenticator is a mobile app.
Paketname:
Package Name:
quiqqer/authgoogle2fa
Features (Funktionen)
Features
--------
QUIQQER Authentication with Google Authenticator
* Authentication via Google Authenticator
Installation
------------
The Package Name is: quiqqer/authgoogle2fa
Der Paketname ist: quiqqer/authgoogle2fa
Mitwirken
Contribute
----------
- Issue Tracker:
- Source Code:
- Project: https://dev.quiqqer.com/quiqqer/authgoogle2fa
- Issue Tracker: https://dev.quiqqer.com/quiqqer/authgoogle2fa/issues
- Source Code: https://dev.quiqqer.com/quiqqer/authgoogle2fa/tree/master
Support
-------
If you have found errors, wishes or suggestions for improvement,
you can contact us by email at support@pcsg.de.
Falls Sie einen Fehler gefunden haben oder Verbesserungen wünschen,
senden Sie bitte eine E-Mail an support@pcsg.de.
We will transfer your message to the responsible developers.
Lizenz
License
-------
Entwickler
--------
GPL-3.0+
\ No newline at end of file
<?php
use QUI;
use PragmaRX\Google2FA\Google2FA;
use QUI\Utils\Security\Orthos;
use QUI\Security;
use QUI\Auth\Google2Fa\Auth;
/**
* Create new google authenticator key for a user
......
bin/images/Gitlab.jpg

3,03 KiB

bin/images/Logo.jpg

57,9 KiB

bin/images/Readme.jpg

54,1 KiB

bin/images/preview/Backend_Authenticator.png

84,6 KiB

bin/images/preview/Backend_KeyList.png

16 KiB

......@@ -4,6 +4,7 @@
"description": "QUIQQER Authentication with Google Authenticator",
"version": "dev-master",
"license": "GPL-3.0+",
"homepage": "https://www.quiqqer.com",
"authors": [
{
"name": "Patrick Müller",
......@@ -17,7 +18,8 @@
"url": "http://www.pcsg.de"
},
"require": {
"pragmarx/google2fa": "1.*",
"quiqqer/quiqqer": ">=1.1|dev-master|dev-dev",
"pragmarx/google2fa": "2.*",
"bacon/bacon-qr-code": "~1.0"
},
"autoload": {
......
......@@ -3,14 +3,21 @@
<groups name="quiqqer/authgoogle2fa" datatype="js,php">
<locale name="google2fa.title">
<de><![CDATA[Google Authenticator]]></de>
<en><![CDATA[Google Authenticator]]></en>
</locale>
<locale name="google2fa.description">
<de><![CDATA[QUIQQER Authentifikation mittels Google Authenticator]]></de>
<en><![CDATA[QUIQQER authentication via Google Authenticator]]></en>
</locale>
<!-- Package -->
<locale name="package.title">
<de><![CDATA[Google Authenticator für QUIQQER]]></de>
<en><![CDATA[Google Authenticator for QUIQQER]]></en>
</locale>
<locale name="package.description">
<de><![CDATA[QUIQQER Authentifikation mittels Google Authenticator]]></de>
<en><![CDATA[QUIQQER authentication via Google Authenticator]]></en>
</locale>
</groups>
......@@ -19,65 +26,75 @@
<!-- Ajax -->
<locale name="exception.ajax.generateKey.title.already.exists">
<de><![CDATA[Es existiert bereits ein Authentifizierungs-Schlüssel mit dem Titel "[title]".]]></de>
<en><![CDATA[An Authentication Key with the title "[title]" already exists.]]></en>
</locale>
<locale name="message.ajax.general.error">
<de>
<![CDATA[Beim Verarbeiten der Anfrage ist ein unerwarteter Fehler aufgetreten. Bitte wenden Sie sich an einen Administrator.]]></de>
<de><![CDATA[Beim Verarbeiten der Anfrage ist ein unerwarteter Fehler aufgetreten. Bitte wenden Sie sich an einen Administrator.]]></de>
<en><![CDATA[An unexpected error ocurred during your request. Please contact an administrator.]]></en>
</locale>
<locale name="message.ajax.generateKey.error" html="true">
<de>
<![CDATA[Beim Erstellen des Authentifizierungs-Schlüssels ist ein Fehler aufgetreten:<br/><br/>[error]]]></de>
<de><![CDATA[Beim Erstellen des Authentifizierungs-Schlüssels ist ein Fehler aufgetreten:<br/><br/>[error]]]></de>
<en><![CDATA[An error occurred while creating the Authentication Key:<br/><br/>[error]]]></en>
</locale>
<locale name="message.ajax.generateKey.success">
<de><![CDATA[Der Authentifizierungs-Schlüssel "[title]" wurde erfolgreich erstellt.]]></de>
<en><![CDATA[The Authentication Key "[title]" has been created successfully.]]></en>
</locale>
<locale name="message.ajax.getKey.error" html="true">
<de>
<![CDATA[Beim Abruf des Authentifizierungs-Schlüssels ist ein Fehler aufgetreten:<br/><br/>[error]]]></de>
<de><![CDATA[Beim Abruf des Authentifizierungs-Schlüssels ist ein Fehler aufgetreten:<br/><br/>[error]]]></de>
<en><![CDATA[An error occurred while retrieving the Authentication Key:<br/><br/>[error]]]></en>
</locale>
<locale name="exception.ajax.getKey.title.not.found">
<de>
<![CDATA[Der Authentifizierungs-Schlüssel "[title]" wurde für den Benutzer "[user]" (#[userId]) nicht gefunden.]]></de>
<de><![CDATA[Der Authentifizierungs-Schlüssel "[title]" wurde für den Benutzer "[user]" (#[userId]) nicht gefunden.]]></de>
<en><![CDATA[The Authentication Key "[title]" was not found for user "[user]" (#[userId]).]]></en>
</locale>
<locale name="message.ajax.getKeys.error" html="true">
<de>
<![CDATA[Beim Abruf der Authentifizierungs-Schlüssels ist ein Fehler aufgetreten:<br/><br/>[error]]]></de>
<de><![CDATA[Beim Abruf der Authentifizierungs-Schlüssel ist ein Fehler aufgetreten:<br/><br/>[error]]]></de>
<en><![CDATA[An error occurred while retrieving the Authentication Keys:<br/><br/>[error]]]></en>
</locale>
<locale name="message.ajax.deleteKeys.error" html="true">
<de>
<![CDATA[Beim Löschen der Authentifizierungs-Schlüssel ist ein Fehler aufgetreten:<br/><br/>[error]]]></de>
<de><![CDATA[Beim Löschen der Authentifizierungs-Schlüssel ist ein Fehler aufgetreten:<br/><br/>[error]]]></de>
<en><![CDATA[An error occurred while deleting the Authentication Keys:<br/><br/>[error]]]></en>
</locale>
<locale name="message.ajax.deleteKeys.success">
<de><![CDATA[Die gewählten Authentifizierungs-Schlüssel wurden erfolgreich gelöscht.]]></de>
<en><![CDATA[The selected Authentication Keys have been deleted successfully.]]></en>
</locale>
<locale name="message.ajax.regenerateRecoveryKeys.error" html="true">
<de><![CDATA[Beim Neu-Generieren der Einmal-Login-Codes ist ein Fehler aufgetreten:<br/><br/>[error]]]></de>
<en><![CDATA[An error occurred while creating new One-Time-Login codes:<br/><br/>[error]]]></en>
</locale>
<locale name="message.ajax.regenerateRecoveryKeys.success">
<de>
<![CDATA[Die Einmal-Login-Codes wurden neu generiert. Die bisherigen Codes sind ab jetzt nicht mehr gültig.]]></de>
<de><![CDATA[Die Einmal-Login-Codes wurden neu generiert. Die bisherigen Codes sind ab jetzt nicht mehr gültig.]]></de>
<en><![CDATA[The One-Time-Login codes have been regenerated. The previous codes are invalid from now on.]]></en>
</locale>
<!-- Class: Auth -->
<locale name="exception.auth.no.username.found">
<de><![CDATA[Es wurde kein Authentifizierungs-Benutzer gefunden.]]></de>
<en><![CDATA[Authentication user not found.]]></en>
</locale>
<locale name="exception.auth.no.authkeys.found">
<de><![CDATA[Es wurde noch kein Authentifizierungs-Schlüssel für den Benutzer "[user]" registriert.]]></de>
<en><![CDATA[There is no Authentication Key registered for user "[user]" yet.]]></en>
</locale>
<locale name="exception.auth.wrong.auth.code">
<de><![CDATA[Falscher Authentifizierungs-Code.]]></de>
<en><![CDATA[Wrong Authentication Code.]]></en>
</locale>
<!-- Login -->
<locale name="login.code">
<de><![CDATA[Google Authenticator Code]]></de>
<en><![CDATA[Google Authenticator Code]]></en>
</locale>
<locale name="login.username">
<de><![CDATA[Benutzername]]></de>
<en><![CDATA[Username]]></en>
</locale>
<locale name="login.btn.auth">
<de><![CDATA[Authentifizieren]]></de>
<en><![CDATA[Authenticate]]></en>
</locale>
<!-- CLI -->
......@@ -97,56 +114,71 @@
<!-- Control: Settings -->
<locale name="controls.settings.generatekey.title">
<de><![CDATA[Neuer Authentifizierungs-Schlüssel]]></de>
<de><![CDATA[New Authentication Key]]></de>
</locale>
<locale name="controls.settings.generatekey.title.label">
<de><![CDATA[Bezeichnung]]></de>
<en><![CDATA[Title]]></en>
</locale>
<locale name="controls.settings.table.btn.generateKey">
<de><![CDATA[Schlüssel hinzufügen]]></de>
<en><![CDATA[Add Key]]></en>
</locale>
<locale name="controls.settings.table.btn.showKey">
<de><![CDATA[Schlüssel anzeigen]]></de>
<en><![CDATA[Show key(s)]]></en>
</locale>
<locale name="controls.settings.table.btn.delete">
<de><![CDATA[Schlüssel löschen]]></de>
<en><![CDATA[Delete key(s)]]></en>
</locale>
<locale name="controls.settings.showkey.title">
<de><![CDATA[Authentifizierungs-Schlüssel - Details]]></de>
<en><![CDATA[Authentication Key - Details]]></en>
</locale>
<locale name="controls.settings.showkey.template.tableHeader">
<de><![CDATA[Authentifizierungs-Schlüssel "[title]"]]></de>
<en><![CDATA[Authentification Key "[title]"]]></en>
</locale>
<locale name="controls.settings.showkey.template.labelQrCode">
<de><![CDATA[QR-Code]]></de>
<en><![CDATA[QR code]]></en>
</locale>
<locale name="controls.settings.showkey.template.labelKey">
<de><![CDATA[Schlüssel]]></de>
<en><![CDATA[Key]]></en>
</locale>
<locale name="controls.settings.showkey.template.labelCreateUser">
<de><![CDATA[Ersteller]]></de>
<en><![CDATA[Creator]]></en>
</locale>
<locale name="controls.settings.showkey.template.labelCreateDate">
<de><![CDATA[Erstellungsdatum]]></de>
<en><![CDATA[Creation date]]></en>
</locale>
<locale name="controls.settings.showkey.template.labelRecoveryKeys">
<de><![CDATA[Einmal-Login-Codes]]></de>
<en><![CDATA[One-Time-Login codes]]></en>
</locale>
<locale name="controls.settings.deleteKeys.title">
<de><![CDATA[Authentifizierungs-Schlüssel löschen]]></de>
<en><![CDATA[Delete key(s)]]></en>
</locale>
<locale name="controls.settings.deleteKeys.info" html="true">
<de>
<![CDATA[Sind Sie sicher, dass Sie die folgenden Authentifizierungs-Schlüssel unwiderruflich löschen wollen? Alle mit diesen Schlüsseln verknüpften Geräte können sich danach nicht mehr mit generierten Codes zu diesen Schlüsseln authentifizieren.<br/><br/>[titles]]]></de>
<de><![CDATA[Sind Sie sicher, dass Sie die folgenden Authentifizierungs-Schlüssel unwiderruflich löschen wollen? Alle mit diesen Schlüsseln verknüpften Geräte können sich danach nicht mehr mit generierten Codes zu diesen Schlüsseln authentifizieren.<br/><br/>[titles]]]></de>
<en><![CDATA[Are your sure you want to delete the following Authentication keys irrevocably? Every Google Authenticator Account connected via these key(s) will no longer be usable.]]></en>
</locale>
<locale name="controls.settings.showkey.regenerate.recoverykeys.btn">
<de><![CDATA[Neu generieren]]></de>
<en><![CDATA[Regenerate]]></en>
</locale>
<locale name="controls.settings.showkey.regenerate.warning.title">
<de><![CDATA[Einmal-Login-Codes neu generieren]]></de>
<en><![CDATA[Regenerator One-Time-Login codes]]></en>
</locale>
<locale name="controls.settings.showkey.regenerate.warning">
<de>
<![CDATA[Sind Sie sicher, dass Sie die Einmal-Login-Codes neu generieren wollen? Alle alten Codes sind danach nicht mehr gültig und es können nur die neuen Codes verwendet werden.]]></de>
<de><![CDATA[Sind Sie sicher, dass Sie die Einmal-Login-Codes neu generieren wollen? Alle alten Codes sind danach nicht mehr gültig und es können nur die neuen Codes verwendet werden.]]></de>
<en><![CDATA[Are you sure you want to regenerate the One-Time-Login codes? The previous codes will no longer be valid.]]></en>
</locale>
</groups>
......
......@@ -8,9 +8,29 @@
<locale group="quiqqer/authgoogle2fa" var="package.description"/>
</description>
<provider>
<auth src="\QUI\Auth\Google2Fa\Auth" />
</provider>
<image src="URL_OPT_DIR/quiqqer/authgoogle2fa/bin/images/Logo.jpg"/>
<preview>
<image src="URL_OPT_DIR/quiqqer/authgoogle2fa/bin/images/preview/Backend_Authenticator.png"/>
<image src="URL_OPT_DIR/quiqqer/authgoogle2fa/bin/images/preview/Backend_KeyList.png"/>
</preview>
<support>
<email><![CDATA[support@pcsg.de]]></email>
<forum><![CDATA[https://community.quiqqer.com]]></forum>
<source><![CDATA[https://dev.quiqqer.com/quiqqer/authgoogle2fa]]></source>
<issues><![CDATA[https://dev.quiqqer.com/quiqqer/authgoogle2fa/issues]]></issues>
<wiki><![CDATA[https://dev.quiqqer.com/quiqqer/authgoogle2fa/wikis/home]]></wiki>
</support>
<copyright>
<name><![CDATA[PCSG - Computer & Internet Service OHG]]></name>
<license><![CDATA[GPL-3.0+]]></license>
</copyright>
<provider>
<auth src="\QUI\Auth\Google2Fa\Auth"/>
</provider>
</package>
</quiqqer>
\ No newline at end of file
......@@ -41,7 +41,14 @@ class Auth extends AbstractAuthenticator
*/
public function __construct($user = '')
{
$this->User = QUI::getUsers()->getUserByName($user);
if (!empty($user)) {
try {
$this->User = QUI::getUsers()->getUserByName($user);
} catch (\Exception $Exception) {
$this->User = QUI::getUsers()->getNobody();
}
}
$this->Google2FA = new Google2FA();
}
......@@ -186,14 +193,6 @@ public static function getLoginControl()
return new QUI\Auth\Google2Fa\Controls\Login();
}
/**
* @return \QUI\Control
*/
public static function getRegisterControl()
{
return null;
}
/**
* @return \QUI\Control
*/
......
0% oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren