",
+ "label": "html2",
"list_hidden": 0,
- "search": 0,
"name": "html2",
- "label": "html2",
"not_required": "",
- "html": "<\/div>
"
- },
- {
+ "prio": 12,
+ "search": 0,
"table_name": "rex_ycom_user",
- "prio": 13,
"type_id": "value",
- "type_name": "choice",
+ "type_name": "html"
+ },
+ {
+ "attributes": "",
+ "choice_attributes": "",
+ "choice_label": "",
+ "choices": "translate:ycom_account_inactive_termination=-3,translate:ycom_account_inactive_logins=-2,translate:ycom_account_inactive=-1,translate:ycom_account_requested=0,translate:ycom_account_confirm=1,translate:ycom_account_active=2",
"db_type": "",
- "list_hidden": 0,
- "search": 1,
- "name": "status",
+ "default": "-1",
+ "expanded": "",
+ "group_attributes": "",
+ "group_by": "",
"label": "translate:status",
- "not_required": "",
+ "list_hidden": 0,
"multiple": "0",
- "expanded": "",
- "choices": "translate:ycom_account_inactive_termination=-3,translate:ycom_account_inactive_logins=-2,translate:ycom_account_inactive=-1,translate:ycom_account_requested=0,translate:ycom_account_confirm=1,translate:ycom_account_active=2",
- "choice_attributes": "",
- "default": "-1",
+ "name": "status",
"no_db": "",
+ "not_required": "",
"notice": "",
- "attributes": "",
"placeholder": "",
- "group_by": "",
- "group_attributes": "",
- "preferred_choices": ""
+ "preferred_choices": "",
+ "prio": 13,
+ "search": 1,
+ "table_name": "rex_ycom_user",
+ "type_id": "value",
+ "type_name": "choice"
},
{
- "table_name": "rex_ycom_user",
+ "attributes": "",
+ "db_type": "text",
+ "empty_option": "1",
+ "empty_value": "",
+ "field": "name",
+ "filter": "",
+ "label": "translate:ycom_groups",
+ "list_hidden": 1,
+ "name": "ycom_groups",
+ "not_required": "",
+ "notice": "",
"prio": 14,
+ "relation_table": "",
+ "search": 1,
+ "size": "",
+ "table": "rex_ycom_group",
+ "table_name": "rex_ycom_user",
+ "type": "1",
"type_id": "value",
- "type_name": "generate_key",
+ "type_name": "be_manager_relation"
+ },
+ {
"db_type": "",
+ "label": "translate:activation_key",
"list_hidden": 1,
- "search": 1,
"name": "activation_key",
- "label": "translate:activation_key",
+ "no_db": "",
"not_required": "",
"only_empty": "1",
- "no_db": "",
- "show_value": "1"
+ "prio": 15,
+ "search": 1,
+ "show_value": "1",
+ "table_name": "rex_ycom_user",
+ "type_id": "value",
+ "type_name": "generate_key"
},
{
- "table_name": "rex_ycom_user",
- "prio": 15,
- "type_id": "validate",
- "type_name": "unique",
"db_type": "",
+ "empty_option": "0",
+ "label": "",
"list_hidden": 1,
- "search": 0,
+ "message": "translate:ycom_this_activation_key_exists_already",
"name": "activation_key",
- "label": "",
"not_required": "",
- "message": "translate:ycom_this_activation_key_exists_already",
+ "prio": 16,
+ "search": 0,
"table": "rex_ycom_user",
- "empty_option": "0"
+ "table_name": "rex_ycom_user",
+ "type_id": "validate",
+ "type_name": "unique"
},
{
- "table_name": "rex_ycom_user",
- "prio": 17,
- "type_id": "value",
- "type_name": "checkbox",
+ "attributes": "",
"db_type": "tinyint(1)",
+ "default": "0",
+ "label": "translate:termsofuse_accepted",
"list_hidden": 1,
- "search": 1,
"name": "termsofuse_accepted",
- "label": "translate:termsofuse_accepted",
- "not_required": "",
- "default": "0",
"no_db": "0",
+ "not_required": "",
"notice": "",
- "attributes": "",
- "output_values": ""
- },
- {
+ "output_values": "",
+ "prio": 17,
+ "search": 1,
"table_name": "rex_ycom_user",
- "prio": 18,
"type_id": "value",
- "type_name": "checkbox",
+ "type_name": "checkbox"
+ },
+ {
+ "attributes": "",
"db_type": "tinyint(1)",
+ "default": "0",
+ "label": "translate:new_password_required",
"list_hidden": 1,
- "search": 1,
"name": "new_password_required",
- "label": "translate:new_password_required",
- "not_required": "",
- "default": "0",
"no_db": "0",
+ "not_required": "",
"notice": "",
- "attributes": "",
- "output_values": ""
- },
- {
+ "output_values": "",
+ "prio": 18,
+ "search": 1,
"table_name": "rex_ycom_user",
- "prio": 19,
"type_id": "value",
- "type_name": "datestamp",
+ "type_name": "checkbox"
+ },
+ {
"db_type": "",
+ "format": "",
+ "label": "translate:last_action_time",
"list_hidden": 1,
- "search": 1,
+ "modify_default": "",
"name": "last_action_time",
- "label": "translate:last_action_time",
+ "no_db": "",
"not_required": "",
"only_empty": "2",
- "no_db": "",
- "format": "",
- "modify_default": ""
- },
- {
+ "prio": 19,
+ "search": 1,
"table_name": "rex_ycom_user",
- "prio": 20,
"type_id": "value",
- "type_name": "datestamp",
+ "type_name": "datestamp"
+ },
+ {
"db_type": "",
+ "format": "",
+ "label": "translate:last_login_time",
"list_hidden": 1,
- "search": 1,
+ "modify_default": "",
"name": "last_login_time",
- "label": "translate:last_login_time",
+ "no_db": "",
"not_required": "",
"only_empty": "2",
- "no_db": "",
- "format": "",
- "modify_default": ""
- },
- {
+ "prio": 20,
+ "search": 1,
"table_name": "rex_ycom_user",
- "prio": 21,
"type_id": "value",
- "type_name": "datestamp",
+ "type_name": "datestamp"
+ },
+ {
"db_type": "",
+ "format": "",
+ "label": "translate:last_login_try_time",
"list_hidden": 1,
- "search": 1,
+ "modify_default": "",
"name": "last_login_try_time",
- "label": "translate:last_login_try_time",
+ "no_db": "",
"not_required": "",
"only_empty": "2",
- "no_db": "",
- "format": "",
- "modify_default": ""
- },
- {
+ "prio": 21,
+ "search": 1,
"table_name": "rex_ycom_user",
- "prio": 22,
"type_id": "value",
- "type_name": "datestamp",
+ "type_name": "datestamp"
+ },
+ {
"db_type": "",
+ "format": "",
+ "label": "translate:termination_time",
"list_hidden": 1,
- "search": 1,
+ "modify_default": "",
"name": "termination_time",
- "label": "translate:termination_time",
+ "no_db": "",
"not_required": "",
"only_empty": "2",
- "no_db": "",
- "format": "",
- "modify_default": ""
- },
- {
+ "prio": 22,
+ "search": 1,
"table_name": "rex_ycom_user",
- "prio": 23,
"type_id": "value",
- "type_name": "integer",
+ "type_name": "datestamp"
+ },
+ {
"db_type": "",
+ "default": "0",
+ "label": "translate:login_tries",
"list_hidden": 0,
- "search": 1,
"name": "login_tries",
- "label": "translate:login_tries",
- "not_required": "",
- "default": "0",
"no_db": "",
+ "not_required": "",
"notice": "translate:ycom_login_tries_info",
+ "prio": 23,
+ "search": 1,
+ "table_name": "rex_ycom_user",
+ "type_id": "value",
+ "type_name": "integer",
"unit": ""
},
{
- "table_name": "rex_ycom_user",
+ "db_type": "int",
+ "default": "0",
+ "label": "translate:otp_tries",
+ "list_hidden": 1,
+ "name": "otp_tries",
+ "no_db": "0",
+ "not_required": "",
+ "notice": "translate:otp_tries_info",
"prio": 24,
+ "search": 1,
+ "table_name": "rex_ycom_user",
"type_id": "value",
- "type_name": "html",
- "db_type": "",
- "list_hidden": 0,
- "search": 0,
- "name": "html3",
- "label": "html3",
+ "type_name": "integer",
+ "unit": ""
+ },
+ {
+ "db_type": "text",
+ "label": "translate:otp_last_try_time",
+ "list_hidden": 1,
+ "name": "otp_last_try_time",
"not_required": "",
- "html": "<\/div><\/div>"
+ "prio": 25,
+ "search": 0,
+ "show_value": "0",
+ "table_name": "rex_ycom_user",
+ "type_id": "value",
+ "type_name": "emptyname"
},
{
+ "db_type": "text",
+ "label": "translate:otp_config",
+ "list_hidden": 1,
+ "name": "otp_config",
+ "not_required": "",
+ "prio": 26,
+ "search": 0,
+ "show_value": "0",
"table_name": "rex_ycom_user",
- "prio": 25,
"type_id": "value",
- "type_name": "be_manager_relation",
+ "type_name": "emptyname"
+ },
+ {
"db_type": "",
- "list_hidden": 1,
- "search": 1,
- "name": "ycom_groups",
- "label": "translate:ycom_groups",
+ "html": "<\/div><\/div>",
+ "label": "html3",
+ "list_hidden": 0,
+ "name": "html3",
"not_required": "",
- "size": "",
- "table": "rex_ycom_group",
- "field": "name",
- "type": "1",
- "empty_value": "",
- "empty_option": "1",
- "notice": "",
- "attributes": "",
- "relation_table": "",
- "filter": ""
+ "prio": 27,
+ "search": 0,
+ "table_name": "rex_ycom_user",
+ "type_id": "value",
+ "type_name": "html"
}
- ]
- },
- "rex_ycom_group": {
+ ],
"table": {
- "status": 1,
- "table_name": "rex_ycom_group",
- "name": "translate:ycom_group_name",
"description": "",
- "list_amount": 200,
- "list_sortfield": "name",
- "list_sortorder": "ASC",
- "search": 0,
- "hidden": 0,
+ "exclusive_edit_roles": "",
+ "exclusive_view_roles": "",
"export": 1,
+ "hidden": 0,
+ "history": 0,
"import": 1,
+ "list_amount": 100,
+ "list_sortfield": "login",
+ "list_sortorder": "DESC",
"mass_deletion": 0,
"mass_edit": 0,
+ "name": "translate:rex_ycom_user",
"schema_overwrite": 1,
- "history": 0,
- "exclusive_view_roles": "",
- "exclusive_edit_roles": ""
- },
+ "search": 1,
+ "status": 1,
+ "table_icon": "",
+ "table_name": "rex_ycom_user"
+ }
+ },
+ "rex_ycom_group": {
"fields": [
{
- "table_name": "rex_ycom_group",
- "prio": 1,
- "type_id": "value",
- "type_name": "text",
+ "append": "",
+ "attributes": "",
"db_type": "",
+ "default": "",
+ "label": "translate:name",
"list_hidden": 0,
- "search": 1,
"name": "name",
- "label": "translate:name",
- "not_required": "",
- "default": "",
"no_db": "",
+ "not_required": "",
"notice": "",
- "attributes": "",
"prepend": "",
- "append": ""
+ "prio": 1,
+ "search": 1,
+ "table_name": "rex_ycom_group",
+ "type_id": "value",
+ "type_name": "text"
},
{
- "table_name": "rex_ycom_group",
- "prio": 2,
- "type_id": "validate",
- "type_name": "empty",
"db_type": "",
+ "label": "",
"list_hidden": 1,
- "search": 0,
+ "message": "translate:ycom_group_yform_enter_name",
"name": "name",
- "label": "",
"not_required": "",
- "message": "translate:ycom_group_yform_enter_name"
+ "prio": 2,
+ "search": 0,
+ "table_name": "rex_ycom_group",
+ "type_id": "validate",
+ "type_name": "empty"
}
- ]
+ ],
+ "table": {
+ "description": "",
+ "exclusive_edit_roles": "",
+ "exclusive_view_roles": "",
+ "export": 1,
+ "hidden": 0,
+ "history": 0,
+ "import": 1,
+ "list_amount": 200,
+ "list_sortfield": "name",
+ "list_sortorder": "ASC",
+ "mass_deletion": 0,
+ "mass_edit": 0,
+ "name": "translate:ycom_group_name",
+ "schema_overwrite": 1,
+ "search": 0,
+ "status": 1,
+ "table_icon": "",
+ "table_name": "rex_ycom_group"
+ }
}
-}
+}
\ No newline at end of file
diff --git a/lib/ycom_user.php b/lib/ycom_user.php
index 00300a5..ae2100c 100644
--- a/lib/ycom_user.php
+++ b/lib/ycom_user.php
@@ -99,7 +99,8 @@ public function increaseLoginTries(): self
public function increaseOTPTries(): self
{
- $this->setValue('otp_tries', $this->getValue('otp_tries') + 1);
+ $otp_tries = (int) $this->getValue('otp_tries');
+ $this->setValue('otp_tries', $otp_tries + 1);
$this->setValue('otp_last_try_time', time());
return $this;
}
diff --git a/plugins/auth/lang/de_de.lang b/plugins/auth/lang/de_de.lang
index 6f04a37..2b25d09 100644
--- a/plugins/auth/lang/de_de.lang
+++ b/plugins/auth/lang/de_de.lang
@@ -93,3 +93,8 @@ otp_auth_totp_period = Zeitintervall bei Authentikatoren (nicht veränderbar)
otp_auth_totp_period_info = {0} Sekunden
otp_auth_logintries = Anzahl der erlaubten Fehlversuche (nicht veränderbar)
otp_auth_logintries_info = {0} Versuche
+
+otp_tries = OTP Fehlversuche
+otp_tries_info = Erlaubte Fehlversuche werden im Plugin
YCom/Auth definiert
+otp_last_try_time = OTP Letzter Versuch
+otp_config = OTP Config