mirror of
				https://github.com/steveiliop56/tinyauth.git
				synced 2025-11-04 08:05:42 +00:00 
			
		
		
		
	Compare commits
	
		
			2 Commits
		
	
	
		
			v3.3.0-alp
			...
			v3.3.0
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					d1eeb8c7f7 | ||
| 
						 | 
					a98a91a394 | 
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Enter your TOTP code",
 | 
			
		||||
    "unauthorizedTitle": "Unauthorized",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to access the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Try again",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "أدخل رمز TOTP الخاص بك",
 | 
			
		||||
    "unauthorizedTitle": "غير مرخص",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "المستخدم الذي يحمل اسم المستخدم <Code>{{username}}</Code> غير مصرح له بالوصول إلى المورد <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "المستخدم الذي يحمل اسم المستخدم <Code>{{username}}</Code> غير مصرح له بتسجيل الدخول.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "حاول مجددا",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "إلغاء"
 | 
			
		||||
    "cancelTitle": "إلغاء",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Enter your TOTP code",
 | 
			
		||||
    "unauthorizedTitle": "Unauthorized",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to access the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Try again",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Enter your TOTP code",
 | 
			
		||||
    "unauthorizedTitle": "Unauthorized",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to access the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Try again",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Enter your TOTP code",
 | 
			
		||||
    "unauthorizedTitle": "Unauthorized",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to access the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Try again",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Geben Sie Ihren TOTP Code ein",
 | 
			
		||||
    "unauthorizedTitle": "Unautorisiert",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "Der Benutzer mit Benutzername <Code>{{username}}</Code> ist nicht berechtigt auf die Ressource <Code>{{resource}}</Code> zuzugreifen.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "Der Benutzer mit dem Benutzernamen <Code>{{username}}</Code> ist nicht berechtigt, sich einzuloggen.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Erneut versuchen",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "untrustedRedirectTitle": "Nicht vertrauenswürdige Weiterleitung",
 | 
			
		||||
    "untrustedRedirectSubtitle": "Sie versuchen auf eine Domain umzuleiten, die nicht mit Ihrer konfigurierten Domain übereinstimmt (<Code>{{domain}}</Code>). Sind Sie sicher, dass Sie fortfahren möchten?",
 | 
			
		||||
    "cancelTitle": "Abbrechen",
 | 
			
		||||
    "forgotPasswordTitle": "Passwort vergessen?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Εισάγετε τον κωδικό TOTP",
 | 
			
		||||
    "unauthorizedTitle": "Μη εξουσιοδοτημένο",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "Ο χρήστης με όνομα χρήστη <Code>{{username}}</Code> δεν έχει άδεια πρόσβασης στον πόρο <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "Ο χρήστης με όνομα χρήστη <Code>{{username}}</Code> δεν είναι εξουσιοδοτημένος να συνδεθεί.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "Ο χρήστης με όνομα χρήστη <Code>{{username}}</Code> δεν είναι εξουσιοδοτημένος να συνδεθεί.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "Ο χρήστης με όνομα χρήστη <Code>{{username}}</Code> δεν είναι στις ομάδες που απαιτούνται από τον πόρο <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Προσπαθήστε ξανά",
 | 
			
		||||
    "untrustedRedirectTitle": "Μη έμπιστη ανακατεύθυνση",
 | 
			
		||||
    "untrustedRedirectSubtitle": "Προσπαθείτε να ανακατευθύνετε σε έναν τομέα που δεν ταιριάζει με τον ρυθμισμένο τομέα σας (<Code>{{domain}}</Code>). Είστε βέβαιοι ότι θέλετε να συνεχίσετε;",
 | 
			
		||||
    "cancelTitle": "Ακύρωση"
 | 
			
		||||
    "cancelTitle": "Ακύρωση",
 | 
			
		||||
    "forgotPasswordTitle": "Ξεχάσατε το συνθηματικό σας;"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Enter your TOTP code",
 | 
			
		||||
    "unauthorizedTitle": "Unauthorized",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to access the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Try again",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Enter your TOTP code",
 | 
			
		||||
    "unauthorizedTitle": "Unauthorized",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to access the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Try again",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Saisissez votre code TOTP",
 | 
			
		||||
    "unauthorizedTitle": "Non autorisé",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "L'utilisateur avec le nom d'utilisateur <Code>{{username}}</Code> n'est pas autorisé à accéder à la ressource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "L'utilisateur avec le nom d'utilisateur <Code>{{username}}</Code> n'est pas autorisé à se connecter.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Réessayer",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Enter your TOTP code",
 | 
			
		||||
    "unauthorizedTitle": "Unauthorized",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to access the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Try again",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Enter your TOTP code",
 | 
			
		||||
    "unauthorizedTitle": "Unauthorized",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to access the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Try again",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Enter your TOTP code",
 | 
			
		||||
    "unauthorizedTitle": "Unauthorized",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to access the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Try again",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Enter your TOTP code",
 | 
			
		||||
    "unauthorizedTitle": "Unauthorized",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to access the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Try again",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Enter your TOTP code",
 | 
			
		||||
    "unauthorizedTitle": "Unauthorized",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to access the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Try again",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Voer je TOTP-code in",
 | 
			
		||||
    "unauthorizedTitle": "Ongeautoriseerd",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "De gebruiker met gebruikersnaam <Code>{{username}}</Code> heeft geen toegang tot de bron <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "De gebruiker met gebruikersnaam <Code>{{username}}</Code> is niet gemachtigd om in te loggen.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Opnieuw proberen",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Enter your TOTP code",
 | 
			
		||||
    "unauthorizedTitle": "Unauthorized",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to access the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Try again",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Wprowadź kod TOTP",
 | 
			
		||||
    "unauthorizedTitle": "Nieautoryzowany",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "Użytkownik o nazwie <Code>{{username}}</Code> nie jest upoważniony do uzyskania dostępu do zasobu <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "Użytkownik o nazwie <Code>{{username}}</Code> nie jest upoważniony do logowania.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Spróbuj ponownie",
 | 
			
		||||
    "untrustedRedirectTitle": "Niezaufane przekierowanie",
 | 
			
		||||
    "untrustedRedirectSubtitle": "Próbujesz przekierować do domeny, która nie pasuje do skonfigurowanej przez Ciebie domeny (<Code>{{domain}}</Code>). Czy na pewno chcesz kontynuować?",
 | 
			
		||||
    "cancelTitle": "Anuluj"
 | 
			
		||||
    "cancelTitle": "Anuluj",
 | 
			
		||||
    "forgotPasswordTitle": "Nie pamiętasz hasła?"
 | 
			
		||||
}
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
{
 | 
			
		||||
    "loginTitle": "Bem-vindo de volta, faça o login com",
 | 
			
		||||
    "loginTitle": "Bem-vindo de volta, acesse com",
 | 
			
		||||
    "loginDivider": "Ou continuar com uma senha",
 | 
			
		||||
    "loginUsername": "Nome de usuário",
 | 
			
		||||
    "loginPassword": "Senha",
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Insira o seu código TOTP",
 | 
			
		||||
    "unauthorizedTitle": "Não autorizado",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "O usuário com nome de usuário <Code>{{username}}</Code> não está autorizado a acessar o recurso <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "O usuário com o nome <Code>{{username}}</Code> não está autorizado a acessar.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Tentar novamente",
 | 
			
		||||
    "untrustedRedirectTitle": "Redirecionamento não confiável",
 | 
			
		||||
    "untrustedRedirectSubtitle": "Você está tentando redirecionar para um domínio que não corresponde ao seu domínio configurado (<Code>{{domain}}</Code>). Tem certeza que deseja continuar?",
 | 
			
		||||
    "cancelTitle": "Cancelar"
 | 
			
		||||
    "cancelTitle": "Cancelar",
 | 
			
		||||
    "forgotPasswordTitle": "Esqueceu sua senha?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Enter your TOTP code",
 | 
			
		||||
    "unauthorizedTitle": "Unauthorized",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to access the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Try again",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Enter your TOTP code",
 | 
			
		||||
    "unauthorizedTitle": "Unauthorized",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to access the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Try again",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Enter your TOTP code",
 | 
			
		||||
    "unauthorizedTitle": "Unauthorized",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to access the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Try again",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Enter your TOTP code",
 | 
			
		||||
    "unauthorizedTitle": "Unauthorized",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to access the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Try again",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Enter your TOTP code",
 | 
			
		||||
    "unauthorizedTitle": "Unauthorized",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to access the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Try again",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Enter your TOTP code",
 | 
			
		||||
    "unauthorizedTitle": "Unauthorized",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to access the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Try again",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "İptal"
 | 
			
		||||
    "cancelTitle": "İptal",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Enter your TOTP code",
 | 
			
		||||
    "unauthorizedTitle": "Unauthorized",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to access the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Try again",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Enter your TOTP code",
 | 
			
		||||
    "unauthorizedTitle": "Unauthorized",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to access the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Try again",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "输入您的 TOTP 代码",
 | 
			
		||||
    "unauthorizedTitle": "未授权",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "用户 <Code>{{username}}</Code> 无权访问资源 <Code>{{resource}}</Code>。",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "用户名 <Code>{{username}}</Code> 无登录权限。",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "重试",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -41,9 +41,11 @@
 | 
			
		||||
    "totpTitle": "Enter your TOTP code",
 | 
			
		||||
    "unauthorizedTitle": "Unauthorized",
 | 
			
		||||
    "unauthorizedResourceSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to access the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unaothorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedLoginSubtitle": "The user with username <Code>{{username}}</Code> is not authorized to login.",
 | 
			
		||||
    "unauthorizedGroupsSubtitle": "The user with username <Code>{{username}}</Code> is not in the groups required by the resource <Code>{{resource}}</Code>.",
 | 
			
		||||
    "unauthorizedButton": "Try again",
 | 
			
		||||
    "untrustedRedirectTitle": "Untrusted redirect",
 | 
			
		||||
    "untrustedRedirectSubtitle": "You are trying to redirect to a domain that does not match your configured domain (<Code>{{domain}}</Code>). Are you sure you want to continue?",
 | 
			
		||||
    "cancelTitle": "Cancel"
 | 
			
		||||
    "cancelTitle": "Cancel",
 | 
			
		||||
    "forgotPasswordTitle": "Forgot your password?"
 | 
			
		||||
}
 | 
			
		||||
@@ -70,7 +70,7 @@ export const ContinuePage = () => {
 | 
			
		||||
        </Button>
 | 
			
		||||
        <Button
 | 
			
		||||
          fullWidth
 | 
			
		||||
          mt="sm"
 | 
			
		||||
          mt="xs"
 | 
			
		||||
          color="gray"
 | 
			
		||||
          onClick={() => (window.location.href = "/")}
 | 
			
		||||
        >
 | 
			
		||||
@@ -110,7 +110,7 @@ export const ContinuePage = () => {
 | 
			
		||||
        </Button>
 | 
			
		||||
        <Button
 | 
			
		||||
          fullWidth
 | 
			
		||||
          mt="sm"
 | 
			
		||||
          mt="xs"
 | 
			
		||||
          color="gray"
 | 
			
		||||
          onClick={() => (window.location.href = "/")}
 | 
			
		||||
        >
 | 
			
		||||
 
 | 
			
		||||
@@ -2,8 +2,9 @@ import { Button, Code, Paper, Text } from "@mantine/core";
 | 
			
		||||
import { Layout } from "../components/layouts/layout";
 | 
			
		||||
import { Navigate } from "react-router";
 | 
			
		||||
import { Trans, useTranslation } from "react-i18next";
 | 
			
		||||
import React from "react";
 | 
			
		||||
import React, { useEffect } from "react";
 | 
			
		||||
import { isValidQuery } from "../utils/utils";
 | 
			
		||||
import { useIsMounted } from "../lib/hooks/use-is-mounted";
 | 
			
		||||
 | 
			
		||||
export const UnauthorizedPage = () => {
 | 
			
		||||
  const queryString = window.location.search;
 | 
			
		||||
@@ -12,13 +13,31 @@ export const UnauthorizedPage = () => {
 | 
			
		||||
  const groupErr = params.get("groupErr") ?? "";
 | 
			
		||||
  const resource = params.get("resource") ?? "";
 | 
			
		||||
 | 
			
		||||
  const [isGroupErr, setIsGroupErr] = React.useState(false);
 | 
			
		||||
 | 
			
		||||
  const useMounted = useIsMounted();
 | 
			
		||||
 | 
			
		||||
  useEffect(() => {
 | 
			
		||||
    if (useMounted()) {
 | 
			
		||||
      if (isValidQuery(groupErr)) {
 | 
			
		||||
        if (groupErr === "true") {
 | 
			
		||||
          setIsGroupErr(true);
 | 
			
		||||
          return;
 | 
			
		||||
        }
 | 
			
		||||
        setIsGroupErr(false);
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
      setIsGroupErr(false);
 | 
			
		||||
    }
 | 
			
		||||
  }, []);
 | 
			
		||||
 | 
			
		||||
  const { t } = useTranslation();
 | 
			
		||||
 | 
			
		||||
  if (!isValidQuery(username)) {
 | 
			
		||||
    return <Navigate to="/" />;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (isValidQuery(resource) && !isValidQuery(groupErr)) {
 | 
			
		||||
  if (isValidQuery(resource) && !isGroupErr) {
 | 
			
		||||
    return (
 | 
			
		||||
      <UnauthorizedLayout>
 | 
			
		||||
        <Trans
 | 
			
		||||
@@ -31,7 +50,7 @@ export const UnauthorizedPage = () => {
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (isValidQuery(groupErr) && isValidQuery(resource)) {
 | 
			
		||||
  if (isGroupErr && isValidQuery(resource)) {
 | 
			
		||||
    return (
 | 
			
		||||
      <UnauthorizedLayout>
 | 
			
		||||
        <Trans
 | 
			
		||||
 
 | 
			
		||||
@@ -75,6 +75,8 @@ func (h *Handlers) AuthHandler(c *gin.Context) {
 | 
			
		||||
	// Get the container labels
 | 
			
		||||
	labels, err := h.Docker.GetLabels(appId)
 | 
			
		||||
 | 
			
		||||
	log.Debug().Interface("labels", labels).Msg("Got labels")
 | 
			
		||||
 | 
			
		||||
	// Check if there was an error
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		log.Error().Err(err).Msg("Failed to get container labels")
 | 
			
		||||
@@ -183,54 +185,55 @@ func (h *Handlers) AuthHandler(c *gin.Context) {
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		log.Debug().Interface("labels", labels).Msg("Got labels")
 | 
			
		||||
		// Check groups if using OAuth
 | 
			
		||||
		if userContext.OAuth {
 | 
			
		||||
			// Check if user is in required groups
 | 
			
		||||
			groupOk := h.Auth.OAuthGroup(c, userContext, labels)
 | 
			
		||||
 | 
			
		||||
		// Check if user is in required groups
 | 
			
		||||
		groupOk := h.Auth.OAuthGroup(c, userContext, labels)
 | 
			
		||||
			log.Debug().Bool("groupOk", groupOk).Msg("Checking if user is in required groups")
 | 
			
		||||
 | 
			
		||||
		log.Debug().Bool("groupOk", groupOk).Msg("Checking if user is in required groups")
 | 
			
		||||
			// The user is not allowed to access the app
 | 
			
		||||
			if !groupOk {
 | 
			
		||||
				log.Warn().Str("username", userContext.Username).Str("host", host).Msg("User is not in required groups")
 | 
			
		||||
 | 
			
		||||
		// The user is not allowed to access the app
 | 
			
		||||
		if !groupOk {
 | 
			
		||||
			log.Warn().Str("username", userContext.Username).Str("host", host).Msg("User is not in required groups")
 | 
			
		||||
				// Set WWW-Authenticate header
 | 
			
		||||
				c.Header("WWW-Authenticate", "Basic realm=\"tinyauth\"")
 | 
			
		||||
 | 
			
		||||
			// Set WWW-Authenticate header
 | 
			
		||||
			c.Header("WWW-Authenticate", "Basic realm=\"tinyauth\"")
 | 
			
		||||
				if proxy.Proxy == "nginx" || !isBrowser {
 | 
			
		||||
					c.JSON(401, gin.H{
 | 
			
		||||
						"status":  401,
 | 
			
		||||
						"message": "Unauthorized",
 | 
			
		||||
					})
 | 
			
		||||
					return
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
			if proxy.Proxy == "nginx" || !isBrowser {
 | 
			
		||||
				c.JSON(401, gin.H{
 | 
			
		||||
					"status":  401,
 | 
			
		||||
					"message": "Unauthorized",
 | 
			
		||||
				})
 | 
			
		||||
				// Values
 | 
			
		||||
				values := types.UnauthorizedQuery{
 | 
			
		||||
					Resource: strings.Split(host, ".")[0],
 | 
			
		||||
					GroupErr: true,
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				// Use either username or email
 | 
			
		||||
				if userContext.OAuth {
 | 
			
		||||
					values.Username = userContext.Email
 | 
			
		||||
				} else {
 | 
			
		||||
					values.Username = userContext.Username
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				// Build query
 | 
			
		||||
				queries, err := query.Values(values)
 | 
			
		||||
 | 
			
		||||
				// Handle error (no need to check for nginx/headers since we are sure we are using caddy/traefik)
 | 
			
		||||
				if err != nil {
 | 
			
		||||
					log.Error().Err(err).Msg("Failed to build queries")
 | 
			
		||||
					c.Redirect(http.StatusPermanentRedirect, fmt.Sprintf("%s/error", h.Config.AppURL))
 | 
			
		||||
					return
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				// We are using caddy/traefik so redirect
 | 
			
		||||
				c.Redirect(http.StatusTemporaryRedirect, fmt.Sprintf("%s/unauthorized?%s", h.Config.AppURL, queries.Encode()))
 | 
			
		||||
				return
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// Values
 | 
			
		||||
			values := types.UnauthorizedQuery{
 | 
			
		||||
				Resource: strings.Split(host, ".")[0],
 | 
			
		||||
				GroupErr: true,
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// Use either username or email
 | 
			
		||||
			if userContext.OAuth {
 | 
			
		||||
				values.Username = userContext.Email
 | 
			
		||||
			} else {
 | 
			
		||||
				values.Username = userContext.Username
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// Build query
 | 
			
		||||
			queries, err := query.Values(values)
 | 
			
		||||
 | 
			
		||||
			// Handle error (no need to check for nginx/headers since we are sure we are using caddy/traefik)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				log.Error().Err(err).Msg("Failed to build queries")
 | 
			
		||||
				c.Redirect(http.StatusPermanentRedirect, fmt.Sprintf("%s/error", h.Config.AppURL))
 | 
			
		||||
				return
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// We are using caddy/traefik so redirect
 | 
			
		||||
			c.Redirect(http.StatusTemporaryRedirect, fmt.Sprintf("%s/unauthorized?%s", h.Config.AppURL, queries.Encode()))
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		c.Header("Remote-User", utils.SanitizeHeader(userContext.Username))
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user