added locale backup + en support

This commit is contained in:
_Bastler 2021-03-26 10:17:28 +01:00
parent a9fd56efc6
commit 34755be840
16 changed files with 2724 additions and 1039 deletions

View File

@ -1,11 +1,13 @@
{ {
"spellright.language": [ "spellright.language": [
"English (British)",
"German_de_DE" "German_de_DE"
], ],
"spellright.documentTypes": [ "spellright.documentTypes": [
"html", "html",
"markdown", "markdown",
"latex", "latex",
"plaintext" "plaintext",
"json"
] ]
} }

View File

@ -1,24 +1,16 @@
import { Injectable } from '@angular/core'; import {Injectable} from '@angular/core';
import { Router } from '@angular/router'; import {Router} from '@angular/router';
import { Observable } from 'rxjs'; import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot} from '@angular/router';
import { map } from 'rxjs/operators'; import {AuthService} from '../services/auth.service';
import {
CanActivate,
ActivatedRouteSnapshot,
RouterStateSnapshot
} from '@angular/router';
import { AuthService } from '../services/auth.service';
@Injectable({ @Injectable({
providedIn: 'root' providedIn: 'root'
}) })
export class AuthUpdateGuard implements CanActivate { export class AuthUpdateGuard implements CanActivate {
constructor(private authService: AuthService) { } constructor(private authService: AuthService) {}
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot) { canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
this.authService.getAuth().catch(function (error) { }); this.authService.getAuth().catch(function(error) {});
return true; return true;
} }
} }
@ -27,15 +19,14 @@ export class AuthUpdateGuard implements CanActivate {
providedIn: 'root' providedIn: 'root'
}) })
export class AuthGuard implements CanActivate { export class AuthGuard implements CanActivate {
constructor(private authService: AuthService, private router: Router) { } constructor(private authService: AuthService, private router: Router) {}
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> { canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
const that = this; const that = this;
return this.authService.getAuth().then(response => { return this.authService.getAuth().then(response => {
return true; return true;
}).catch(function (error) { }).catch(function(error) {
that.router.navigateByUrl('/unavailable'); return that.router.parseUrl('/unavailable');
return false;
}); });
} }
} }
@ -44,19 +35,18 @@ export class AuthGuard implements CanActivate {
providedIn: 'root' providedIn: 'root'
}) })
export class AuthenticatedGuard implements CanActivate { export class AuthenticatedGuard implements CanActivate {
constructor(private authService: AuthService, private router: Router) { } constructor(private authService: AuthService, private router: Router) {}
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> { canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
const that = this; const that = this;
return this.authService.getAuth().then((data: any) => { return this.authService.getAuth().then((data: any) => {
if (!data.authenticated) { if(!data.authenticated) {
this.router.navigateByUrl('/login'); this.router.navigateByUrl('/login');
return false; return false;
} }
return true; return true;
}).catch(function (error) { }).catch(function(error) {
that.router.navigateByUrl('/unavailable'); return that.router.parseUrl('/unavailable');
return false;
}); });
} }
} }
@ -65,19 +55,18 @@ export class AuthenticatedGuard implements CanActivate {
providedIn: 'root' providedIn: 'root'
}) })
export class AnonymousGuard implements CanActivate { export class AnonymousGuard implements CanActivate {
constructor(private authService: AuthService, private router: Router) { } constructor(private authService: AuthService, private router: Router) {}
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> { canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot) {
const that = this; const that = this;
return this.authService.getAuth().then((data: any) => { return this.authService.getAuth().then((data: any) => {
if (data.authenticated) { if(data.authenticated) {
this.router.navigateByUrl('/account/info'); this.router.navigateByUrl('/account/info');
return false; return false;
} }
return true; return true;
}).catch(function (error) { }).catch(function(error) {
that.router.navigateByUrl('/unavailable'); return that.router.parseUrl('/unavailable');
return false;
}); });
} }

View File

@ -0,0 +1,3 @@
.text-warning {
color: darkred;
}

View File

@ -2,7 +2,8 @@ import {Component, OnInit} from '@angular/core';
@Component({ @Component({
selector: 'app-imprint', selector: 'app-imprint',
templateUrl: './general.imprint.html' templateUrl: './general.imprint.html',
styleUrls: ['./general.component.scss']
}) })
export class ImprintComponent implements OnInit { export class ImprintComponent implements OnInit {
@ -16,7 +17,8 @@ export class ImprintComponent implements OnInit {
@Component({ @Component({
selector: 'app-privacy-policy', selector: 'app-privacy-policy',
templateUrl: './general.privacy-policy.html' templateUrl: './general.privacy-policy.html',
styleUrls: ['./general.component.scss']
}) })
export class PrivacyPolicyComponent implements OnInit { export class PrivacyPolicyComponent implements OnInit {
@ -30,7 +32,8 @@ export class PrivacyPolicyComponent implements OnInit {
@Component({ @Component({
selector: 'app-terms-of-service', selector: 'app-terms-of-service',
templateUrl: './general.terms-of-service.html' templateUrl: './general.terms-of-service.html',
styleUrls: ['./general.component.scss']
}) })
export class TermsOfServiceComponent implements OnInit { export class TermsOfServiceComponent implements OnInit {

View File

@ -8,4 +8,12 @@
{{'service-unavailable.text' | i18n}} {{'service-unavailable.text' | i18n}}
</p> </p>
</mat-card-content> </mat-card-content>
<mat-card-actions>
<a mat-raised-button color="primary" (click)="retry()">
{{'service-unavailable.retry' | i18n}}
</a>
<a mat-raised-button href="https://wiki.bstly.de/help#Support">
{{'service-unavailable.support' | i18n}}
</a>
</mat-card-actions>
</mat-card> </mat-card>

View File

@ -10,6 +10,6 @@ mat-card {
padding: 0; padding: 0;
} }
mat-card-content { mat-card-content, mat-card-actions {
padding: 16px; padding: 16px !important;
} }

View File

@ -1,4 +1,5 @@
import { Component, OnInit } from '@angular/core'; import {Component, OnInit} from '@angular/core';
import { Location } from '@angular/common'
@Component({ @Component({
selector: 'app-unavailable', selector: 'app-unavailable',
@ -7,9 +8,14 @@ import { Component, OnInit } from '@angular/core';
}) })
export class UnavailableComponent implements OnInit { export class UnavailableComponent implements OnInit {
constructor() { } constructor(
private location: Location) {}
ngOnInit(): void { ngOnInit(): void {
} }
retry() {
this.location.back();
}
} }

View File

@ -1,18 +1,18 @@
import {Injectable} from '@angular/core'; import {Injectable} from '@angular/core';
import {HttpClient} from '@angular/common/http'; import {HttpClient} from '@angular/common/http';
import { environment } from '../../environments/environment'; import {environment} from '../../environments/environment';
@Injectable({ @Injectable({
providedIn: 'root', providedIn: 'root',
}) })
export class I18nService { export class I18nService {
locale: string; locale: string = "de-informal";
locales : any = ["de-informal"]; locales: any = ["de-informal"];
i18n: any; i18n: any;
constructor(private http: HttpClient) { constructor(private http: HttpClient) {
} }
getLocales() { getLocales() {
@ -28,29 +28,36 @@ export class I18nService {
} }
async fetch() { async fetch() {
let browserLocale = navigator.language; let browserLocale = navigator.language;
if(browserLocale.indexOf("-") != -1) { if(browserLocale.indexOf("-") != -1) {
browserLocale = browserLocale.split("-")[0]; browserLocale = browserLocale.split("-")[0];
} }
let locale = localStorage.getItem("bstly.locale") || browserLocale || this.locales[0]; let locale = localStorage.getItem("bstly.locale") || browserLocale || this.locales[0];
if(locale == 'de') { if(locale == 'de') {
locale = 'de-informal'; locale = 'de-informal';
} }
this.locales = await this.http.get(environment.apiUrl + "/i18n").toPromise(); try {
this.locales = await this.http.get(environment.apiUrl + "/i18n").toPromise();
} catch(e) {
console.debug("fallback to default locales");
}
if(this.locales.indexOf(locale) == -1) { if(this.locales.indexOf(locale) == -1) {
locale = this.locales[0]; locale = this.locales[0];
} }
this.setLocale(locale); this.setLocale(locale);
try {
this.i18n = await this.http.get(environment.apiUrl + "/i18n/" + locale).toPromise(); this.i18n = await this.http.get(environment.apiUrl + "/i18n/" + locale).toPromise();
} catch(e) {
this.i18n = await this.http.get("/assets/i18n/" + locale + ".json").toPromise();
console.debug("fallback to default locale");
}
} }
get(key, args: string[]): string { get(key, args: string[]): string {

View File

@ -0,0 +1,287 @@
{
"account": "Account",
"cancel": "Abbrechen",
"close": "Schließen",
"confirm": "Bestätigen",
"date-time-format": "dd.MM.yyyy HH:mm:ss",
"email": {
".": "E-Mail Adresse",
"invalid": "ungültige E-Mail Adresse",
"primary": "primäre E-Mail Adresse"
},
"greet": "Hallo {0}",
"help": "Hilfe",
"imprint": "Impressum",
"info": {
".": "Info"
},
"locale": {
"de-informal": {
"long": "Deutsch",
"short": "DE"
},
"en": {
"long": "English",
"short": "EN"
}
},
"login": {
".": "Login",
"external": "Login",
"invalid": "Falscher Username oder Passwort.",
"keepSession": "Eingeloggt bleiben"
},
"logout": "Logout",
"not-found": {
".": "Nicht gefunden",
"text": "Diese Seite wurde nicht gefunden."
},
"ok": "Ok",
"password": {
".": "Passwort",
"change": "Passwort ändern",
"changed": "Passwort erfolgreich geändert",
"confirm": "Passwort bestätigen",
"current": "Akutelles Passwort",
"error": {
"ILLEGAL_WHITESPACE": "Bitte keine Leerzeichen verwenden.",
"INSUFFICIENT_DIGIT": "Bitte mindestens eine Zahl eingeben.",
"INSUFFICIENT_LOWERCASE": "Bitte mindestens einen Kleinbuchstaben eingeben.",
"INSUFFICIENT_SPECIAL": "Bitte mindestens ein Sonderzeichen eingeben.",
"INSUFFICIENT_UPPERCASE": "Bitte mindestens einen Großbuchstaben eingeben.",
"TOO_SHORT": "Bitte ein längeres Passwort wählen."
},
"forgot": "Passwort vergessen",
"invalid": {
"hint": "Bitte gebe das Passwort in einem gültigen Format an."
},
"not-match": "Passwörter stimmen nicht überein.",
"request": "Neues Passwort anfordern",
"reset": {
".": "Passwort setzen",
"login": "Zum Login",
"success": {
"text": "Dein neues Passwort wurde übernommen. Du kannst dich nun mit deinem neuen Passwort einloggen.",
"title": "Passwort erfolgreich geändert"
}
}
},
"permissions": {
".": "Berechtigungen",
"expires": "Gültig bis",
"name": "Name",
"starts": "Gültig ab"
},
"pgp": {
".": "PGP",
"privateKey": {
".": "Privater PGP Schlüssel",
"confirmStore": "Ich habe meinen privaten Schlüssel sicher gespeichert!",
"downloadKey": "Privaten Schlüssel herunterladen",
"help": "Dein Privater Schlüssel wird aktuell verwendet, wenn du dein Passwort vergessen hast. Außerdem kannst du damit E-Mails entschlüsseln und dich gegenüber einigen Diensten authentifizieren.",
"downloaded": "Privaten Schlüssel anderweitig gesichert.",
"copyKey": "In die Zwischenablage kopieren"
}
},
"privacy-policy": "Datenschutzerklärung",
"profile": "Profil",
"profileField": {
".": "Profilfeld",
"confirmDelete": "Möchtest du das Profilfeld '{0}' wirklich löschen?",
"create": "Neues Profilfeld hinzufügen",
"delete": "Löschen",
"edit": "Bearbeiten",
"index": "Index",
"name": {
".": "Name",
"publicKey": "Öffentlicher PGP Schlüssel",
"email": "E-Mail Adresse",
"primaryEmail": "E-Mail Adresse primär verwenden",
"prtyMap": "Partey Karte"
},
"openBlob": "Anzeigen",
"type": {
".": "Typ",
"BOOL": {
".": "Boolean"
},
"DATE": {
".": "Datum"
},
"EMAIL": {
".": "E-Mail"
},
"NUMBER": {
".": "Numerisch"
},
"TEXT": {
".": "Textfeld"
},
"URL": {
".": "URL"
}
},
"value": "Wert",
"visibility": {
".": "Sichtbarkeit",
"PRIVATE": {
".": "Privat"
},
"PROTECTED": {
".": "Geschützt"
},
"PUBLIC": {
".": "Öffentlich"
}
}
},
"quotas": {
".": "Quotas",
"name": "Name",
"unit": {
"#": "# (Anzahl)",
".": "Einheit",
"G": "GB (Gigabyte)"
},
"value": "Quota"
},
"register": {
".": "Registrierung",
"login": "Zum Login",
"success": {
"text": "Deine Registrierung war erfolgreich. Du kannst dich nun einloggen!",
"title": "Registrierung abgeschlossen"
},
"token.missing": "Du benötigst leider ein gültiges Token!"
},
"save": "Speichern",
"security": {
".": "Sicherheit",
"2fa": {
".": "Zwei-Faktor-Authentifizierung (2FA)",
"info": "Du kannst hier einen zweiten Faktor zusätzlich zu deinem Passwort hinzufügen. Beachte, dass dies nur den Login in deinen we.bstly-Account betrifft. 2FA gilt nicht für deinen E-Mail Account. Aktuell wird nur TOTP (bekannt als Google Authenticator) unterstützt.",
"totp": {
".": "2FA (TOTP)",
"activate": "Um TOTP als 2FA zu aktivieren, gebe bitte deinen aktuellen Code ein.",
"code": "TOTP Code",
"create": "2FA (TOTP) einrichten",
"enable": "Aktiviere 2FA (TOTP)",
"external": "2FA (TOTP)",
"hint": "Um TOTP als zweiten Faktor beim Login zu verwenden, scanne den QRCode mit deiner TOTP App.",
"invalid": "TOTP Code ist ungültig",
"keepSession": "2FA (TOTP) für dieses Gerät merken",
"login": "Code verfizieren",
"missing": "Bitte TOTP Code eingeben",
"remove": "2FA (TOTP) deaktivieren"
}
}
},
"service-unavailable": {
".": "Dienst nicht erreichbar",
"retry" : "Seite neu laden",
"support" : "Support",
"text": "Zurzeit scheint der Dienst nicht erreichbar zu sein. Wenn diese Meldung länger besteht, melde dich beim Support!"
},
"services": {
".": "Dienste",
"gitea": {
"icon": "code",
"subtitle": "Git-Repositories",
"text": "Alternative zu Diensten wie GitHub, Source Code von bstly-Entwicklungen",
"title": "Gitea"
},
"goto": "Zum Dienst",
"mail": {
"icon": "email",
"subtitle": "E-Mail Konto",
"text": "Catch-All an @{username}.we.bstly.de, lernender Spam-Filter und PGP Verschlüsselung.",
"title": "E-Mail Postfach"
},
"matrix": {
"icon": "question_answer",
"subtitle": "Messenger Plattform",
"text": "mit anderen Austauschen, sich Informieren oder einfach quatschen.",
"title": "Matrix"
},
"nextcloud": {
"icon": "cloud",
"subtitle": "Cloud Plattform",
"text": "Dateiverwaltung, Kalender, Aufgabenmanagement, Kontaktmanagement, Abstimmungen und mehr.",
"title": "Nextcloud"
},
"partey": {
"icon": "celebration",
"subtitle": "Virtuelles Vereinsheim",
"text": "Digitaler Treffpunkt für Veranstaltungen oder einfach zum Abhängen.",
"title": "Partey"
},
"registration_vouchers": {
"icon": "card_giftcard",
"subtitle": "Gutschein Code für Registrierungs-Token",
"text": "Einladung um die Dienste des Bastelei e. V. zu nutzen",
"title": "Registrierungs-Gutscheincodes"
},
"ROLE_ADMIN": {
"icon": "admin_panel_settings",
"subtitle": "Administrator von we.bstly",
"text": "Administrator Rechte für die API von we.bstly",
"title": "Administrator"
},
"ROLE_MEMBER": {
"icon": "loyalty",
"subtitle": "Mitgliedschaft im Bastelei e. V.",
"text": "Reguläres Mitglied im Bastelei e. V.",
"title": "Vereinsmitgliedschaft"
},
"wikijs": {
"icon": "school",
"subtitle": "Informationen, Dokumentation, Anleitungen",
"text": "Alle Information rund um Bastelei e. V. und den angebotenen Diensten, sowie Anleitungen für einzelne Dienste und Funktionen",
"title": "Wiki"
}
},
"software": "Software",
"sourcecode": "Quellcode",
"token": "Token",
"tokens": {
".": "Tokens",
"enter": "Token einlösen",
"get": "Mitgliedschaft",
"invalid": "Das Token ist leider nicht gültig.",
"provide-valid": "Bitte gebe ein gültiges Token ein.",
"redeem": "Tokens einlösen",
"redeemed": "Das Token wurde bereits eingelöst.",
"validate": "Prüfen"
},
"user": {
".": "User",
"unavailable": {
".": "Zugriff verweigert",
"text": "Dieser Benutzer existiert nicht oder du hast keine Berechtigungen, um auf das Profil zuzugreifen."
}
},
"username": {
".": "Username",
"error": "Bitte wähle einen anderen Usernamen aus.",
"missing": "Bitte gebe einen Usernamen an."
},
"voucher": {
".": "Gutscheincode",
"code": "Code",
"type": "Typ"
},
"vouchers": {
".": "Gutscheincodes",
"add-on": "Add-On",
"info": "Hier kannst du Gutscheincodes für Add-Ons und Registrierung generieren.",
"registration": "Registrierung",
"stored-safely": {
".": "Da wir keine Verbindungen von Gutscheincodes zu deinem Account speichern, speichere diesen Code bitte selber sicher ab. Falls du die Seite verlässt oder neu lädst ist der Code nicht mehr verfügbar!",
"confirm": "Ich habe den Code sicher abgespeichert!"
},
"temp": {
".": "Temporäre Gutscheincodes",
"info": "Hier werden deine aktuell angefragten Gutscheincodes angezeigt. Bitte speichere diese sicher ab, da wir diese Codes nicht für dich speichern!"
}
}
}

288
src/assets/i18n/en.json Normal file
View File

@ -0,0 +1,288 @@
{
"account": "Account",
"cancel": "Cancel",
"close": "Close",
"confirm": "Confirm",
"date-time-format": "MM/dd/yyy h:mm:ss a",
"email": {
".": "Email address",
"invalid": "invalid email address",
"primary": "primary email address"
},
"greet": "Hello {0}",
"help": "Help",
"imprint": "Imprint",
"info": {
".": "Info"
},
"locale": {
"de-informal": {
"long": "Deutsch",
"short": "DE"
},
"en": {
"long": "English",
"short": "EN"
}
},
"login": {
".": "Login",
"external": "Login",
"invalid": "Wrong username or password.",
"keepSession": "Stay logged in"
},
"logout": "Logout",
"not-found": {
".": "Nothing found",
"text": "This page was not found."
},
"ok": "Ok",
"password": {
".": "Password",
"change": "Change password",
"changed": "Successfully changed password",
"confirm": "Confirm password",
"current": "Current password",
"error": {
"ILLEGAL_WHITESPACE": "Please don't use space characters.",
"INSUFFICIENT_DIGIT": "Please enter at least one digit.",
"INSUFFICIENT_LOWERCASE": "Please enter at least one lower case character.",
"INSUFFICIENT_SPECIAL": "Please enter at least one special character.",
"INSUFFICIENT_UPPERCASE": "Please enter at least one upper case character.",
"TOO_SHORT": "Please choose a longer password."
},
"forgot": "Forgot password",
"invalid": {
"hint": "Please provide password in a valid format."
},
"not-match": "Passwords did not match.",
"request": "Request new password",
"reset": {
".": "Set password",
"login": "Back to login",
"success": {
"text": "Your new password has been applied. You can now login with your new password.",
"title": "Successfully changed password"
}
}
},
"permissions": {
".": "Permissions",
"expires": "Valid until",
"name": "Name",
"starts": "Valid from"
},
"pgp": {
".": "PGP",
"privateKey": {
".": "Private PGP key",
"confirmStore": "I have securely stored my private key!",
"downloadKey": "Download private key",
"help": "Currently your private key will be used for password reset. Besides it can be used to decrypt emails and authenticate against certain services.",
"downloaded": "Stored private key otherwise.",
"copyKey": "Copy to clipboard"
}
},
"privacy-policy": "Privacy Policy",
"profile": "Profile",
"profileField": {
".": "Profile field",
"confirmDelete": "Are you sure you want to delete your profile field '{0}'?",
"create": "Add new profile field",
"delete": "Delete",
"edit": "Edit",
"index": "Index",
"name": {
".": "Name",
"publicKey": "Public PGP key",
"email": "Email address",
"primaryEmail": "Use email address primary",
"prtyMap": "Partey map"
},
"openBlob": "Display",
"type": {
".": "Type",
"BOOL": {
".": "Boolean"
},
"DATE": {
".": "Date"
},
"EMAIL": {
".": "Email"
},
"NUMBER": {
".": "Numeric"
},
"TEXT": {
".": "Text"
},
"URL": {
".": "URL"
}
},
"value": "Value",
"visibility": {
".": "Visibility",
"PRIVATE": {
".": "Private"
},
"PROTECTED": {
".": "Protected"
},
"PUBLIC": {
".": "Public"
}
}
},
"quotas": {
".": "Quotas",
"name": "Name",
"unit": {
"#": "# (Count)",
".": "Unit",
"G": "GB (Gigabyte)"
},
"value": "Quota"
},
"register": {
".": "Registration",
"login": "To Login",
"success": {
"text": "Successfully registered your Account. You can login now!",
"title": "Finished registration"
},
"token.missing": "You need a valid token!"
},
"save": "Save",
"security": {
".": "Security",
"2fa": {
".": "Two-Factor-Authentication (2FA)",
"info": "You can additionally add a second factor to your password. Please keep in mind, that this only affects your we.bstly-Account and not your email login. Currently only TOTP (also known as Google Authenticator) is supported as 2FA method.",
"totp": {
".": "2FA (TOTP)",
"activate": "Please enter your current code to enable TOTP as your 2FA.",
"code": "TOTP code",
"create": "2FA (TOTP) create",
"enable": "Enable 2FA (TOTP)",
"external": "2FA (TOTP)",
"hint": "To use TOP as second factor, please scan the shown QR-Code with your TOTP App.",
"invalid": "Invalid TOTP code",
"keepSession": "Remember 2FA (TOTP) for this device",
"login": "Verify code",
"missing": "Please enter TOTP code",
"remove": "Disable 2FA (TOTP)"
}
}
},
"service-unavailable": {
".": "Service unavailable",
"retry" : "Reload page",
"support" : "Support",
"text": "The service seems currently unavailable. If this message appears over a longer period, please contact our support!"
},
"services": {
".": "Services",
"gitea": {
"icon": "code",
"subtitle": "Git-Repositories",
"text": "Alternative of services like GitHub, Source Code of bstly-development",
"title": "Gitea"
},
"goto": "To service",
"mail": {
"icon": "email",
"subtitle": "Email Account",
"text": "Catch-All to @{username}.we.bstly.de, learning spam-filter and PGP encryption.",
"title": "Email Account"
},
"matrix": {
"icon": "question_answer",
"subtitle": "Messenger",
"text": "talk, exchange, discuss with others",
"title": "Matrix"
},
"nextcloud": {
"icon": "cloud",
"subtitle": "Cloud service",
"text": "File management, calendar, tasks, contacts, polls and more.",
"title": "Nextcloud"
},
"partey": {
"icon": "celebration",
"subtitle": "Virtual clubhouse",
"text": "Digital place for events or hang-outs.",
"title": "Partey"
},
"registration_vouchers": {
"icon": "card_giftcard",
"subtitle": "Voucher for Registration-Token",
"text": "Invite to use the services of Bastelei e. V.",
"title": "Registration vouchers"
},
"ROLE_ADMIN": {
"icon": "admin_panel_settings",
"subtitle": "Administrator of we.bstly",
"text": "Administrator privileges for we.bstly API",
"title": "Administrator"
},
"ROLE_MEMBER": {
"icon": "loyalty",
"subtitle": "Membership of Bastelei e. V.",
"text": "Valid member of Bastelei e. V.",
"title": "Club membership"
},
"wikijs": {
"icon": "school",
"subtitle": "Informationen, documentation, guides",
"text": "All informations about Bastelei e. V. and provides service, together with guides for individual services and functions.",
"title": "Wiki"
}
},
"software": "Software",
"sourcecode": "Source Code",
"token": "Token",
"tokens": {
".": "Token",
"enter": "Enter token",
"get": "Membership",
"invalid": "The provided token is invalid.",
"provide-valid": "Please provide a valid token.",
"redeem": "Redeem token",
"redeemed": "The provided token has already been redeemed.",
"validate": "Validate"
},
"user": {
".": "User",
"unavailable": {
".": "Access denied",
"text": "The provided user does not exists or you have insufficient privileges to access profile."
}
},
"username": {
".": "Username",
"error": "Please choose a different username.",
"missing": "Please enter a valid username."
},
"voucher": {
".": "Voucher",
"code": "Code",
"type": "Typ"
},
"vouchers": {
".": "Vouchers",
"add-on": "Add-On",
"info": "Generate vouchers for Add-Ons and registration.",
"registration": "Registration",
"stored-safely": {
".":
"Please store the provided voucher code securely, since we do not store any relation of vouchers to your account. If you leave page or reload the code won't be shown up again!",
"confirm": "I securely stored the given voucher!"
},
"temp": {
".": "Temporary vouchers",
"info": "You currently requested vouchers are displayed here. Please store them securely!"
}
}
}

View File

@ -1,86 +1,74 @@
<html> <h2>Impressum</h2>
<head> <p><strong>Bastelei e.V.</strong><br>
<meta charset="UTF-8" /> <i>Registergericht</i>: Amtsgericht Hagen<br>
</head> <i>Registernummer</i>: VR 3206
</p>
<body> <p><strong>Vorstand</strong><br>
<i>Einzeln vertretungsbefugt</i><br>
Lukas Haubaum, Jan Frederik Demmer
</p>
<h2>Impressum</h2> <p><strong>Kontakt</strong><br>
<i>Name</i>: Bastelei e. V.<br>
<i>Adresse</i>: Asternstraße 6, 58285 Gevelsberg<br>
<i>Telefon</i>: 02332 666 77 01<br>
<i>Fax</i>: 02332 666 76 99<br>
<i>E-Mail</i>: impressum [at] bstly.de
</p>
<p><strong>Bastelei e.V.</strong><br> <p><strong>Bankverbindung</strong><br>
<i>Registergericht</i>: Amtsgericht Hagen<br> <i>IBAN</i>: DE20 8306 5408 0004 2726 33<br>
<i>Registernummer</i>: VR 3206 <i>BIC</i>: GENODEF1SLR
</p> </p>
<p><strong>Vorstand</strong><br> <h3>Ausschluss der Haftung</h3>
<i>Einzeln vertretungsbefugt</i><br>
Lukas Haubaum, Jan Frederik Demmer
</p>
<p><strong>Kontakt</strong><br> <h4>1. Haftung für Inhalte</h4>
<i>Name</i>: Bastelei e. V.<br>
<i>Adresse</i>: Asternstraße 6, 58285 Gevelsberg<br>
<i>Telefon</i>: 02332 666 77 01<br>
<i>Fax</i>: 02332 666 76 99<br>
<i>E-Mail</i>: impressum [at] bstly.de
</p>
<p><strong>Bankverbindung</strong><br> <p>Der Inhalt unserer Internetseiten wurde mit größtmöglicher Sorgfalt erstellt. Wir übernehmen jedoch keine Gewähr
<i>IBAN</i>: DE20 8306 5408 0004 2726 33<br> dafür,
<i>BIC</i>: GENODEF1SLR dass dieser Inhalt richtig, vollständig, und aktuell ist und zudem noch gefällt. Gemäß § 7 Abs. 1 TMG sind wir
</p> für
den Inhalt verantwortlich, selbst wenn dieser bestellt wurde.</p>
<h3>Ausschluss der Haftung</h3> <p>Gemäß den §§ 8, 9 und 10 TMG ist für uns keine Verpflichtung gegeben, dass wir Informationen von Dritten, die
übermittelt oder gespeichert wurden, überwachen oder Umstände erheben, die Hinweise auf nicht rechtmäßige
Tätigkeiten
ergeben.</p>
<h4>1. Haftung für Inhalte</h4> <p>Davon nicht berührt, ist unsere Verpflichtung zur Sperrung oder Entfernung von Informationen, welche von den
allgemeinen Gesetzen herrührt.</p>
<p>Der Inhalt unserer Internetseiten wurde mit größtmöglicher Sorgfalt erstellt. Wir übernehmen jedoch keine Gewähr <p>Wir haften allerdings erst in dem Moment, in dem wir von einer konkreten Verletzung von Rechten Kenntnis
dafür, bekommen.
dass dieser Inhalt richtig, vollständig, und aktuell ist und zudem noch gefällt. Gemäß § 7 Abs. 1 TMG sind wir Dann
für wird eine unverzügliche Entfernung des entsprechenden Inhalts vorgenommen.</p>
den Inhalt verantwortlich, selbst wenn dieser bestellt wurde.</p>
<p>Gemäß den §§ 8, 9 und 10 TMG ist für uns keine Verpflichtung gegeben, dass wir Informationen von Dritten, die <h4>2. Haftung für Links</h4>
übermittelt oder gespeichert wurden, überwachen oder Umstände erheben, die Hinweise auf nicht rechtmäßige
Tätigkeiten
ergeben.</p>
<p>Davon nicht berührt, ist unsere Verpflichtung zur Sperrung oder Entfernung von Informationen, welche von den <p>Unsere Internetseiten enthält Links, die zu externen Internetseiten von Dritten führen, auf deren Inhalte wir
allgemeinen Gesetzen herrührt.</p> jedoch
keinen Einfluss haben. Es ist uns daher nicht möglich, eine Gewähr für diese Inhalte zu tragen.</p>
<p>Wir haften allerdings erst in dem Moment, in dem wir von einer konkreten Verletzung von Rechten Kenntnis <p>Die Verantwortung dafür hat immer der jeweilige Anbieter/Betreiber der entsprechenden Internetseite. Wir
bekommen. überprüfen
Dann die von uns verlinkten Internetseiten zum Zeitpunkt der Verlinkung auf einen möglichen Rechtsverstoß in voller
wird eine unverzügliche Entfernung des entsprechenden Inhalts vorgenommen.</p> Breite.</p>
<h4>2. Haftung für Links</h4> <p>Es kann uns jedoch, ohne einen konkreten Anhaltspunkt, nicht zugemutet werden, ständig die verlinkten
Internetseiten
inhaltlich zu überwachen. Wenn wir jedoch von einer Rechtsverletzung Kenntnis erlangen, werden wir den
entsprechenden
Link unverzüglich entfernen.</p>
<p>Unsere Internetseiten enthält Links, die zu externen Internetseiten von Dritten führen, auf deren Inhalte wir <h4>3. Urheberrecht</h4>
jedoch
keinen Einfluss haben. Es ist uns daher nicht möglich, eine Gewähr für diese Inhalte zu tragen.</p>
<p>Die Verantwortung dafür hat immer der jeweilige Anbieter/Betreiber der entsprechenden Internetseite. Wir <p>Wir weisen darauf hin, dass wir hinsichtlich der Inhalte auf unserer Internetseiten, soweit sie nicht von uns
überprüfen erstellt
die von uns verlinkten Internetseiten zum Zeitpunkt der Verlinkung auf einen möglichen Rechtsverstoß in voller worden sind, das Urheberrecht von Dritten jederzeit beachtet haben.</p>
Breite.</p>
<p>Es kann uns jedoch, ohne einen konkreten Anhaltspunkt, nicht zugemutet werden, ständig die verlinkten <p>Wenn du uns mitteilen würdest, dass du trotzdem eine Urheberrechtsverletzung gefunden hast, würden wir das sehr
Internetseiten schätzen. Dann können wir den entsprechenden Inhalt sofort entfernen und würde damit das Urheberrecht nicht mehr
inhaltlich zu überwachen. Wenn wir jedoch von einer Rechtsverletzung Kenntnis erlangen, werden wir den verletzen.</p>
entsprechenden
Link unverzüglich entfernen.</p>
<h4>3. Urheberrecht</h4>
<p>Wir weisen darauf hin, dass wir hinsichtlich der Inhalte auf unserer Internetseiten, soweit sie nicht von uns
erstellt
worden sind, das Urheberrecht von Dritten jederzeit beachtet haben.</p>
<p>Wenn du uns mitteilen würdest, dass du trotzdem eine Urheberrechtsverletzung gefunden hast, würden wir das sehr
schätzen. Dann können wir den entsprechenden Inhalt sofort entfernen und würde damit das Urheberrecht nicht mehr
verletzen.</p>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,76 @@
<p class="text-warning">English translation not available yet!</p>
<h2>Impressum</h2>
<p><strong>Bastelei e.V.</strong><br>
<i>Registergericht</i>: Amtsgericht Hagen<br>
<i>Registernummer</i>: VR 3206
</p>
<p><strong>Vorstand</strong><br>
<i>Einzeln vertretungsbefugt</i><br>
Lukas Haubaum, Jan Frederik Demmer
</p>
<p><strong>Kontakt</strong><br>
<i>Name</i>: Bastelei e. V.<br>
<i>Adresse</i>: Asternstraße 6, 58285 Gevelsberg<br>
<i>Telefon</i>: 02332 666 77 01<br>
<i>Fax</i>: 02332 666 76 99<br>
<i>E-Mail</i>: impressum [at] bstly.de
</p>
<p><strong>Bankverbindung</strong><br>
<i>IBAN</i>: DE20 8306 5408 0004 2726 33<br>
<i>BIC</i>: GENODEF1SLR
</p>
<h3>Ausschluss der Haftung</h3>
<h4>1. Haftung für Inhalte</h4>
<p>Der Inhalt unserer Internetseiten wurde mit größtmöglicher Sorgfalt erstellt. Wir übernehmen jedoch keine Gewähr
dafür,
dass dieser Inhalt richtig, vollständig, und aktuell ist und zudem noch gefällt. Gemäß § 7 Abs. 1 TMG sind wir
für
den Inhalt verantwortlich, selbst wenn dieser bestellt wurde.</p>
<p>Gemäß den §§ 8, 9 und 10 TMG ist für uns keine Verpflichtung gegeben, dass wir Informationen von Dritten, die
übermittelt oder gespeichert wurden, überwachen oder Umstände erheben, die Hinweise auf nicht rechtmäßige
Tätigkeiten
ergeben.</p>
<p>Davon nicht berührt, ist unsere Verpflichtung zur Sperrung oder Entfernung von Informationen, welche von den
allgemeinen Gesetzen herrührt.</p>
<p>Wir haften allerdings erst in dem Moment, in dem wir von einer konkreten Verletzung von Rechten Kenntnis
bekommen.
Dann
wird eine unverzügliche Entfernung des entsprechenden Inhalts vorgenommen.</p>
<h4>2. Haftung für Links</h4>
<p>Unsere Internetseiten enthält Links, die zu externen Internetseiten von Dritten führen, auf deren Inhalte wir
jedoch
keinen Einfluss haben. Es ist uns daher nicht möglich, eine Gewähr für diese Inhalte zu tragen.</p>
<p>Die Verantwortung dafür hat immer der jeweilige Anbieter/Betreiber der entsprechenden Internetseite. Wir
überprüfen
die von uns verlinkten Internetseiten zum Zeitpunkt der Verlinkung auf einen möglichen Rechtsverstoß in voller
Breite.</p>
<p>Es kann uns jedoch, ohne einen konkreten Anhaltspunkt, nicht zugemutet werden, ständig die verlinkten
Internetseiten
inhaltlich zu überwachen. Wenn wir jedoch von einer Rechtsverletzung Kenntnis erlangen, werden wir den
entsprechenden
Link unverzüglich entfernen.</p>
<h4>3. Urheberrecht</h4>
<p>Wir weisen darauf hin, dass wir hinsichtlich der Inhalte auf unserer Internetseiten, soweit sie nicht von uns
erstellt
worden sind, das Urheberrecht von Dritten jederzeit beachtet haben.</p>
<p>Wenn du uns mitteilen würdest, dass du trotzdem eine Urheberrechtsverletzung gefunden hast, würden wir das sehr
schätzen. Dann können wir den entsprechenden Inhalt sofort entfernen und würde damit das Urheberrecht nicht mehr
verletzen.</p>

View File

@ -0,0 +1,912 @@
<p class="text-warning">English translation not available yet!</p>
<p>Die folgende Erklärung gilt für die Domain bstly.de, deren Subdomains sowie für die von Bastelei e. V.
bereitgestellten Dienste.</p>
<h2>Datenschutzerklärung</h2>
<p>Personenbezogene Daten (nachfolgend zumeist nur „Daten“ genannt) werden von uns nur im Rahmen der
Erforderlichkeit
sowie zum Zwecke der Bereitstellung eines funktionsfähigen und nutzerfreundlichen Internetauftritts, inklusive
seiner Inhalte und der dort angebotenen Leistungen, verarbeitet.</p>
<p>Gemäß Art. 4 Ziffer 1. der Verordnung (EU) 2016/679, also der Datenschutz-Grundverordnung (nachfolgend nur
„DSGVO“
genannt), gilt als „Verarbeitung“ jeder mit oder ohne Hilfe automatisierter Verfahren ausgeführter Vorgang oder
jede
solche Vorgangsreihe im Zusammenhang mit personenbezogenen Daten, wie das Erheben, das Erfassen, die
Organisation,
das Ordnen, die Speicherung, die Anpassung oder Veränderung, das Auslesen, das Abfragen, die Verwendung, die
Offenlegung durch Übermittlung, Verbreitung oder eine andere Form der Bereitstellung, den Abgleich oder die
Verknüpfung, die Einschränkung, das Löschen oder die Vernichtung.</p>
<p>Mit der nachfolgenden Datenschutzerklärung informieren wir dich insbesondere über Art, Umfang, Zweck, Dauer und
Rechtsgrundlage der Verarbeitung personenbezogener Daten, soweit wir entweder allein oder gemeinsam mit anderen
über
die Zwecke und Mittel der Verarbeitung entscheiden.</p>
<p>Die Datenschutzerklärung ist wie folgt gegliedert:<br>
I. Informationen über uns als Verantwortliche<br>
II. Rechte der Nutzer und Betroffenen<br>
III. Informationen zur Datenverarbeitung</p>
<h3>I. Informationen über uns als Verantwortlicher</h3>
<p>Verantwortliche Anbieter dieses Internetauftritts im datenschutzrechtlichen Sinne:<br>
<i>Name</i>: Bastelei e. V.<br>
<i>Adresse</i>: Asternstraße 6, 58285 Gevelsberg<br>
<i>Telefon</i>: 02332 666 77 01<br>
<i>Fax</i>: 02332 666 76 99<br>
<i>E-Mail</i>: datenschutz [at] bstly.de
</p>
<h3>II. Rechte der Nutzer und Betroffenen</h3>
<p>Mit Blick auf die nachfolgend noch näher beschriebene Datenverarbeitung hast du als Nutzer und Betroffenen das
Recht
auf Bestätigung, ob dich betreffende Daten verarbeitet werden, auf Auskunft über die verarbeiteten Daten, auf
weitere
Informationen über die Datenverarbeitung sowie auf Kopien der Daten (vgl. auch Art. 15 DSGVO);
auf Berichtigung oder Vervollständigung unrichtiger bzw. unvollständiger Daten (vgl. auch Art. 16 DSGVO);
auf unverzügliche Löschung der dich betreffenden Daten (vgl. auch Art. 17 DSGVO), oder, alternativ, soweit eine
weitere Verarbeitung gemäß Art. 17 Abs. 3 DSGVO erforderlich ist, auf Einschränkung der Verarbeitung nach
Maßgabe
von Art. 18 DSGVO;
auf Erhalt der dich betreffenden und von dir bereitgestellten Daten und auf Übermittlung dieser Daten an andere
Anbieter/Verantwortliche (vgl. auch Art. 20 DSGVO);<br>
auf Beschwerde gegenüber der Aufsichtsbehörde, sofern du der Ansicht bist, dass die dich betreffenden Daten
durch
den Anbieter unter Verstoß gegen datenschutzrechtliche Bestimmungen verarbeitet werden (vgl. auch Art. 77
DSGVO).
</p>
<p>Darüber hinaus ist der Anbieter dazu verpflichtet, alle Empfänger, denen gegenüber Daten durch den Anbieter
offengelegt worden sind, über jedwede Berichtigung oder Löschung von Daten oder die Einschränkung der
Verarbeitung,
die aufgrund der Artikel 16, 17 Abs. 1, 18 DSGVO erfolgt, zu unterrichten. Diese Verpflichtung besteht jedoch
nicht,
soweit diese Mitteilung unmöglich oder mit einem unverhältnismäßigen Aufwand verbunden ist. Unbeschadet dessen
hat
der Nutzer ein Recht auf Auskunft über diese Empfänger.</p>
<p>Ebenfalls hast du als Nutzer und Betroffenen nach Art. 21 DSGVO das Recht auf Widerspruch gegen die künftige
Verarbeitung der dich betreffenden Daten, sofern die Daten durch den Anbieter nach Maßgabe von Art. 6 Abs. 1
lit. f)
DSGVO verarbeitet werden. Insbesondere ist ein Widerspruch gegen die Datenverarbeitung zum Zwecke der
Direktwerbung
statthaft.</p>
<p>Du hast gemäß denVorschriften der Datenschutzgrundverordnung (DSGVO) ein Auskunftsrecht über die zu deiner Person
gespeicherten Daten, einen Berichtigungsanspruch sowie bei Vorliegen der rechtlichen Voraussetzungen einen
Anspruch auf Einschränkung der Verarbeitung und Löschung.</p>
<p>Eine Auskunft / Löschung kann entweder in den entsprechenden Diensten über die persönlichen Einstellungen
angefordert
werden oder per E-Mail Kontakt erfragt werden.</p>
<h3>III. Informationen zur Datenverarbeitung</h3>
<p>Deine bei Nutzung des Internetauftritts verarbeiteten Daten werden gelöscht oder gesperrt, sobald der Zweck der
Speicherung entfällt, der Löschung der Daten keine gesetzlichen Aufbewahrungspflichten entgegenstehen und
nachfolgend keine anderslautenden Angaben zu einzelnen Verarbeitungsverfahren gemacht werden.</p>
<h4 id="Serverdaten">Serverdaten</h4>
<p>Aus technischen Gründen, werden Daten durch deinen Internet-Browser an den Server übermittelt. Soweit technisch
möglich, werden Daten wie u.a. Typ und Version deines Internetbrowsers, das Betriebssystem, die Website, von der
aus
du auf unseren Internetauftritt gewechselt hast (Referrer URL), die Website(s) des Internetauftritts, die du
besuchst, Datum und Uhrzeit des jeweiligen Zugriffs sowie die IP-Adresse des Internetanschlusses, von dem aus
die
Nutzung unseres Internetauftritts erfolgt, nicht(!) erhoben.</p>
<p>Da unser Interesse im Schutz dieser personenbezogenen Daten liegt, werden diese Daten generell nicht erhoben. Zur
Verbesserung, Stabilität, Funktionalität und Sicherheit unseres Internetauftritts ist jedoch eine temporäre
Erhebung möglich. Diese Speicherung erfolgt auf der Rechtsgrundlage von Art. 6 Abs. 1 lit. f) DSGVO.</p>
<p>Sollten diese so erhobenen Daten vorübergehend in sog. Server-Log-Files gespeichert werden, geschieht dies jedoch
nicht gemeinsam mit anderen Daten von dir.</p>
<p>Die Daten werden spätestens nach 14 Tagen wieder gelöscht.</p>
<h4>Kontaktanfragen / Kontaktmöglichkeit</h4>
<p>Sofern Du per Kontaktformular oder E-Mail mit uns in Kontakt trittst, werden die dabei von dir angegebenen Daten
zur Bearbeitung deiner Anfrage genutzt. Die Angabe der Daten ist zur Bearbeitung und Beantwortung deiner Anfrage
erforderlich - ohne deren Bereitstellung können wir deine Anfrage nicht oder allenfalls eingeschränkt
beantworten.
</p>
<p>Rechtsgrundlage für die Verarbeitung dieser Daten ist Art. 6 Abs. 1 lit. b) DSGVO.</p>
<p>Deine Daten werden gelöscht, sofern deine Anfrage abschließend beantwortet worden ist und der Löschung keine
gesetzlichen Aufbewahrungspflichten entgegenstehen, wie bspw. bei einer sich etwaig anschließenden
Vertragsabwicklung.</p>
<h4 id="Pretix">Nutzung des Dienstes Pretix <small>membership.bstly.de, pretix.bstly.de</small></h4>
<h5>Gespeicherte Daten</h5>
<p>Die folgenden Daten werden durch den Dienst Pretix erfasst und gespeichert:
<p>
<table border="1">
<thead>
<tr>
<th>Bezeichnung</th>
<th>Betroffene Benutzer </th>
<th>Speicherfrist</th>
<th>Verwendungszweck</th>
<th>Weitergabe an Dritte</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<strong>Cookies</strong>
<p>Zufällig generierte IDs, technisch bedingte Parameter</p>
</td>
<td>
<p>alle Besucher der Seite</p>
</td>
<td>
<p>Sitzungsende (Beenden des Browsers)</p>
</td>
<td>
<p>Wiedererkennung des Benutzers während der Nutzung der Anwendung</p>
</td>
<td>
<p>keine Weitergabe an Dritte</p>
</td>
</tr>
<tr>
<td>
<strong>Rechnungsdaten / Mitgliedsdaten</strong>
<p>E-Mail Adresse, Name, Anschrift (freiwillig: Kommentar, Referenz)</p>
</td>
<td>
<p>Benutzer mit getätigter Bestellung</p>
</td>
<td>
<p>bis zur Löschung</p>
</td>
<td>
<p>Durchführung der Bestellung, interne Auflistung der Vereinsmitglieder, Archivierung für
Steuerprüfung
</p>
</td>
<td>
<p>keine Weitergabe an Dritte</p>
</td>
</tr>
<tr>
<td>
<strong>Bestelldaten</strong>
<p>Datum, Status, Menge sowie Art der Bestellung</p>
</td>
<td>
<p>Benutzer mit getätigter Bestellung</p>
</td>
<td>
<p>bis zur Löschung</p>
</td>
<td>
<p>Durchführung der Bestellung, automatische Erinnerung für Mitglieder</p>
</td>
<td>
<p>Keine Weitergabe an Dritte</p>
</td>
</tr>
</tbody>
</table>
<h4 id="we.bstly">Nutzung des Dienstes we.bstly <small>we.bstly.de</small></h4>
<h5>Gespeicherte Daten</h5>
<p>Die folgenden Daten werden durch den Dienst we.bstly erfasst und gespeichert:
<p>
<table border="1">
<thead>
<tr>
<th>Bezeichnung</th>
<th>Betroffene Benutzer </th>
<th>Speicherfrist</th>
<th>Verwendungszweck</th>
<th>Weitergabe an Dritte</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<strong>Cookies</strong>
<p>Zufällig generierte IDs, technisch bedingte Parameter</p>
</td>
<td>
<p>- alle Besucher der Seite</p>
<p>- Benutzer der „automatischen Anmeldung“</p>
</td>
<td>
<p>- Sitzungsende (Beenden des Browsers)</p>
<p>- bis zur aktiven Beendigung der Sitzung</p>
</td>
<td>
<p>- Wiedererkennung des Benutzers während der Nutzung der Anwendung</p>
<p>- Wiedererkennung des Benutzers bei „automatischer Anmeldung“</p>
</td>
<td>
<p>keine Weitergabe an Dritte</p>
</td>
</tr>
<tr>
<td>
<strong>Account-Daten</strong>
<p>Benutzername, öffentlicher PGP Schlüssel (freiwillig: E-Mail Adresse), Profildaten (freiwillig)
</p>
</td>
<td>
<p>Benutzer mit Account</p>
</td>
<td>
<p>bis zur Löschung</p>
</td>
<td>
<p>Identifizierung für Login, Nutzung weiterer Diensten</p>
</td>
<td>
<p>Weitergabe nur durch aktive Einstellung, ansonsten keine Weitergabe an Dritte</p>
</td>
</tr>
<tr>
<td>
<p>Passwort</p>
</td>
<td>
<p>Benutzer mit Account</p>
</td>
<td>
<p>Keine permanente Speicherung, direkte Weitergabe an Authentifizierungsserver</p>
</td>
<td>
<p>Authentifizierung (Login)</p>
</td>
<td>
<p>Keine Weitergabe an Dritte</p>
</td>
</tr>
<tr>
<td>
<strong>Einstellungen / Eigenschaften</strong>
<p>Berechtigungen und Quotas (freiwillig: Parameter Zweifaktor Authentifizierung)</p>
</td>
<td>
<p>siehe Account-Daten</p>
</td>
<td>
<p>siehe Account-Daten</p>
</td>
<td>
<p>Nutzung weiterer Diensten, Steuerung des Login Prozesses</p>
</td>
<td>
<p>Keine Weitergabe an Dritte</p>
</td>
</tr>
</tbody>
</table>
<h4 id="Nextcloud">Nutzung des Dienstes Nextcloud <small>nc.bstly.de</small></h4>
<h5>Gespeicherte Daten</h5>
<p>Die folgenden Daten werden durch den Dienst Nextcloud erfasst und gespeichert:
<p>
<table border="1">
<thead>
<tr>
<th>Bezeichnung</th>
<th>Betroffene Benutzer </th>
<th>Speicherfrist</th>
<th>Verwendungszweck</th>
<th>Weitergabe an Dritte</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<strong>Cookies</strong>
<p>Zufällig generierte IDs, technisch bedingte Parameter</p>
</td>
<td>
<p>- alle Besucher der Seite</p>
<p>- Benutzer der „automatischen Anmeldung“</p>
</td>
<td>
<p>- Sitzungsende (Beenden des Browsers)</p>
<p>- 16 Tage nach letzter Nutzung</p>
</td>
<td>
<p>- Wiedererkennung des Benutzers während der Nutzung der Anwendung</p>
<p>- Wiedererkennung des Benutzers bei „automatischer Anmeldung“</p>
</td>
<td>
<p>keine Weitergabe an Dritte</p>
</td>
</tr>
<tr>
<td>
<strong>Account-Daten</strong>
<p>Benutzername (freiwillig: E-Mail Adresse)</p>
</td>
<td>
<p>Benutzer mit Account</p>
</td>
<td>
<p>bis zur Löschung</p>
</td>
<td>
<p>Suche nach Benutzern beim Teilen von Inhalten, Senden von Benachrichtigungen</p>
</td>
<td>
<p>Weitergabe an alle Nutzer</p>
</td>
</tr>
<tr>
<td>
<strong>Einstellungen/ Eigenschaften</strong>
<p>Zeitstempel letztes Login, Speicherplatzkontingent, Speicherplatzkauf / Laufzeit, Sprache,
vorgenommene persönliche Einstellungen</p>
</td>
<td>
<p>Benutzer mit Account</p>
</td>
<td>
<p>siehe Account-Daten</p>
</td>
<td>
<p>Erkennung inaktiver Benutzer, Speicherplatzzuweisung, persönliche Anpassung der Oberfläche,
Benachrichtigungen, etc.</p>
</td>
<td>
<p>Keine Weitergabe an Dritte</p>
</td>
</tr>
<tr>
<td>
<strong>Aktivitäten</strong>
<p>Auflistung der im System durchgeführten Aktionen, z.B. Upload von Dateien</p>
</td>
<td>
<p>Benutzer mit Account</p>
</td>
<td>
<p>14 Tage</p>
</td>
<td>
<p>Nachvollziehbarkeit von Änderungen</p>
</td>
<td>
<p>Weitergabe individuell vom Nutzer einstellbar</p>
</td>
</tr>
<tr>
<td>
<strong>strukturierte Daten</strong>
<p>Daten, welche von Apps in der Datenbank abgelegt werden</p>
</td>
<td>
<p>Benutzer mit Account</p>
</td>
<td>
<p>maximale Speicherfrist siehe Account-Daten, ansonsten abhängig von der
jeweiligen App</p>
</td>
<td>
<p>Nutzung der jeweiligen Apps</p>
</td>
<td>
<p>Weitergabe von in Apps erfassten Daten individuell vom Nutzer einstellbar</p>
</td>
</tr>
<tr>
<td>
<strong>Dateien</strong>
<p>Dateien, welche mit der „Dateien“-Anwendung oder externen Clients abgelegt werden</p>
</td>
<td>
<p>Benutzer mit Account</p>
</td>
<td>
<p>siehe Account-Daten</p>
</td>
<td>
<p>Nutzung der „Dateien“-App oder Clients für verschiedene Plattformen zur Dateisynchronisierung,
Teilen
von Dateien mit Dritten</p>
</td>
<td>
<p>Weitergabe von Dateien individuell vom Nutzer einstellbar</p>
</td>
</tr>
</tbody>
</table>
<h4 id="Matrix">Nutzung des Dienstes Matrix <small>matrix.bstly.de, element.bstly.de</small></h4>
<h5>Gespeicherte Daten</h5>
<p>Die folgenden Daten werden durch den Dienst Matrix erfasst und gespeichert:
<p>
<table border="1">
<thead>
<tr>
<th>Bezeichnung</th>
<th>Betroffene Benutzer </th>
<th>Speicherfrist</th>
<th>Verwendungszweck</th>
<th>Weitergabe an Dritte</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<strong>Cookies</strong>
<p>Zufällig generierte IDs, technisch bedingte Parameter</p>
</td>
<td>
<p>Benutzer der Anwendungg</p>
</td>
<td>
<p>bis zur Abmeldung</p>
</td>
<td>
<p>Wiedererkennung des Benutzers während der Nutzung der Anwendung</p>
<p>Wiedererkennung des Benutzers bei „automatischer Anmeldung“</p>
</td>
<td>
<p>keine Weitergabe an Dritte</p>
</td>
</tr>
<tr>
<td>
<strong>Account-Daten</strong>
<p>Benutzername</p>
</td>
<td>
<p>Benutzer mit Account</p>
</td>
<td>
<p>bis zur Löschung</p>
</td>
<td>
<p>Suche nach anderen Benutzern</p>
</td>
<td>
<p>Weitergabe an andere Nutzer</p>
</td>
</tr>
<tr>
<td>
<strong>Nachrichten</strong>
<p>Persönliche Chat-Nachrichten, sowie Gruppen-Chat-Nachrichten, je nach Option sind diese Daten
komplett Ende-zu-Ende verschlüsselt!</p>
</td>
<td>
<p>Benutzer mit Account</p>
</td>
<td>
<p>bis zur Löschung</p>
</td>
<td>
<p>Kommunikation mit anderen Benutzern</p>
</td>
<td>
<p>Keine Weitergabe an Dritte</p>
</td>
</tr>
<tr>
<td>
<strong>Räume</strong>
<p>Mitgliedschaft und Information über sogenannte Räume, also Gruppen-Chats.</p>
</td>
<td>
<p>Benutzer mit Account</p>
</td>
<td>
<p>bis zur Löschung</p>
</td>
<td>
<p>Kommunikation mit anderen Benutzern in Gruppen</p>
</td>
<td>
<p>Räume können privat oder öffentlich sein, je nachdem finde keine Weitergabe an Dritte statt
</p>
</td>
</tr>
</tbody>
</table>
<h4 id="E-Mail">Nutzung des Dienstes E-Mail Postfach <small>webmail.bstly.de, rl.bstly.de</small></h4>
<h5>Gespeicherte Daten</h5>
<p>Die folgenden Daten werden durch den Dienst E-Mail Postfach erfasst und gespeichert:
<p>
<table border="1">
<thead>
<tr>
<th>Bezeichnung</th>
<th>Betroffene Benutzer </th>
<th>Speicherfrist</th>
<th>Verwendungszweck</th>
<th>Weitergabe an Dritte</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<strong>E-Mails</strong>
<p>Empfangene und gesendete E-Mails</p>
</td>
<td>
<p>Benutzer mit E-Mail Postfach</p>
</td>
<td>
<p>bis zur Löschung</p>
</td>
<td>
<p>Speicherung der E-Mails zur Abfrage</p>
</td>
<td>
<p>Jeweilige Sender & Empfänger der E-Mail</p>
</td>
</tr>
</tr>
</tbody>
</table>
<h4 id="Partey">Nutzung des Dienstes Partey <small>prty.bstly.de</small></h4>
<h5>Gespeicherte Daten</h5>
<p>Im Dienst Partey können weitere Dienste eingebunden sein, wie z.B. Jitsi Meet. Außerdem können externe
Webseiten und Audio-Streams geöffnet werden, es werden allerdings keine erfassten Daten an diese Webseiten
weitergegeben!</p>
<p>Die folgenden Daten werden durch den Dienst Partey erfasst:
<p>
<table border="1">
<thead>
<tr>
<th>Bezeichnung</th>
<th>Betroffene Benutzer </th>
<th>Speicherfrist</th>
<th>Verwendungszweck</th>
<th>Weitergabe an Dritte</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<strong>Username, Avatar</strong>
<p>Gesetzter Username, Auswahl des Avatars</p>
</td>
<td>
<p>Benutzer mit gültiger Session</p>
</td>
<td>
<p>bis zur Beendigung der Session</p>
</td>
<td>
<p>Identifizierung des Avatars und Individualisierung</p>
</td>
<td>
<p>Andere Benutzer in Nähe zum Avatar</p>
</td>
</tr>
<tr>
<td>
<strong>Audiodaten</strong>
<p>(optional) Audiodaten des freigegebenen Mikrofons</p>
</td>
<td>
<p>Benutzer mit freigegebenen Mikrofon</p>
</td>
<td>
<p>WICHTIG: die Daten werden nicht an den Server übertragen
sondern direkt an die anderen Benutzer in der Nähe gesendet!</p>
</td>
<td>
<p>Direkte Gespräche mit anderen Benutzern</p>
</td>
<td>
<p>Andere Benutzer in direkter Nähe zum Avatar</p>
</td>
</tr>
<tr>
<td>
<strong>Videodaten</strong>
<p>(optional) Videodaten der freigegebenen Kamera</p>
</td>
<td>
<p>Benutzer mit freigegebener Kamera</p>
</td>
<td>
<p>WICHTIG: die Daten werden nicht an den Server übertragen sondern direkt an die anderen Benutzer
in der Nähe gesendet!</p>
</td>
<td>
<p>Direkte Gespräche mit anderen Benutzern</p>
</td>
<td>
<p>Andere Benutzer in direkter Nähe zum Avatar</p>
</td>
</tr>
<tr>
<td>
<strong>Textnachrichten</strong>
<p>(optional) Textnachrichten die der Benutzer in den Chat sendet</p>
</td>
<td>
<p>Benutzer, die Chat-Nachrichten schreiben</p>
</td>
<td>
<p>Keine permanente Speicherung</p>
</td>
<td>
<p>Textnachrichten an andere Benutzern in der Nähe</p>
</td>
<td>
<p>Andere Benutzer in der Nähe</p>
</td>
</tr>
</tbody>
</table>
<h4 id="Jitsi">Nutzung des Dienstes Jitsi Meet <small>meet.bstly.de</small></h4>
<h5>Gespeicherte Daten</h5>
<p>Die folgenden Daten werden durch den Dienst Jitsi Meet erfasst:
<p>
<table border="1">
<thead>
<tr>
<th>Bezeichnung</th>
<th>Betroffene Benutzer </th>
<th>Speicherfrist</th>
<th>Verwendungszweck</th>
<th>Weitergabe an Dritte</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<strong>Benutzername</strong>
<p>Gesetzter Benutzername</p>
</td>
<td>
<p>Benutzer mit gültiger Session</p>
</td>
<td>
<p>bis zur Beendigung der Session</p>
</td>
<td>
<p>Anzeige des Benutzernamen an andere Benutzer</p>
</td>
<td>
<p>Andere Benutzer im Konferenzraum</p>
</td>
</tr>
<tr>
<td>
<strong>Konferenzraum-Id</strong>
<p>Id des beigetretenen Konferenzraums</p>
</td>
<td>
<p>Benutzer mit gültiger Session</p>
</td>
<td>
<p>bis zur Beendigung der Session</p>
</td>
<td>
<p>Zuweisung des Users zum Konferenzraum</p>
</td>
<td>
<p>Keine Weitergabe an Dritte</p>
</td>
</tr>
<tr>
<td>
<strong>Audiodaten</strong>
<p>(optional) Audiodaten des freigegebenen Mikrofons</p>
</td>
<td>
<p>Benutzer mit freigegebenen Mikrofon</p>
</td>
<td>
<p>Keine permanente Speicherung</p>
</td>
<td>
<p>Gespräche mit anderen Benutzern im Konferenzraum</p>
</td>
<td>
<p>Andere Benutzer im Konferenzraum</p>
</td>
</tr>
<tr>
<td>
<strong>Videodaten</strong>
<p>(optional) Videodaten der freigegebenen Kamera</p>
</td>
<td>
<p>Benutzer mit freigegebener Kamera</p>
</td>
<td>
<p>Keine permanente Speicherung</p>
</td>
<td>
<p>Gespräche mit anderen Benutzern im Konferenzraum</p>
</td>
<td>
<p>Andere Benutzer im Konferenzraum</p>
</td>
</tr>
<tr>
<td>
<strong>Textnachrichten</strong>
<p>(optional) Textnachrichten die der Benutzer in den Chat sendet</p>
</td>
<td>
<p>Benutzer, die Chat-Nachrichten schreiben</p>
</td>
<td>
<p>Keine permanente Speicherung</p>
</td>
<td>
<p>Textnachrichten an andere Benutzern im Konferenzraum</p>
</td>
<td>
<p>Andere Benutzer im Konferenzraum</p>
</td>
</tr>
</tbody>
</table>
<h4 id="Gitea">Nutzung des Dienstes Gitea <small>git.bstly.de</small></h4>
<h5>Gespeicherte Daten</h5>
<p>Die folgenden Daten werden durch den Dienst Gitea erfasst:
<p>
<table border="1">
<thead>
<tr>
<th>Bezeichnung</th>
<th>Betroffene Benutzer </th>
<th>Speicherfrist</th>
<th>Verwendungszweck</th>
<th>Weitergabe an Dritte</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<strong>Account-Daten</strong>
<p>Benutzername, E-Mail Adresse, Profildaten (freiwillig) </p>
</td>
<td>
<p>Benutzer mit Account</p>
</td>
<td>
<p>bis zur Löschung</p>
</td>
<td>
<p>Identifizierung von Aktivitäten</p>
</td>
<td>
<p>einsehbar für andere Benutzer</p>
<p>öffentlich einsehbar bei Aktivitäten in öffentlichen Repositorien</p>
</td>
</tr>
<tr>
<td>
<strong>Einstellungen/ Repositorien</strong>
<p>Eigene, favorisierte Repositorien, Öffentlicher Schlüssel zur Authentifizierung </p>
</td>
<td>
<p>Benutzer mit Account</p>
</td>
<td>
<p>bis zur Löschung</p>
</td>
<td>
<p>Verwaltung der Repositorien, Nutzung der git-Funktionen</p>
</td>
<td>
<p>Weitergabe individuell vom Nutzer einstellbar</p>
</td>
</tr>
<tr>
<td>
<strong>Dateien</strong>
<p>Dateien in den Repositorien</p>
</td>
<td>
<p>Benutzer mit Account</p>
</td>
<td>
<p>siehe Einstellungen/ Repositorien</p>
</td>
<td>
<p>Speichern von Dateien in Repositorien</p>
</td>
<td>
<p>Abhängig von Sichtbarkeit der entsprechenden Repositorien, siehe Einstellungen/ Repositorien</p>
</td>
</tr>
<tr>
<td>
<strong>Änderungshistorie</strong>
<p>Änderungen (Commits) für Repositorien</p>
</td>
<td>
<p>Benutzer mit Account</p>
</td>
<td>
<p>siehe Einstellungen/ Repositorien</p>
</td>
<td>
<p>Nachverfolgung und Wiederherstellung von Änderungen</p>
</td>
<td>
<p>Abhängig von Sichtbarkeit der entsprechenden Repositorien, siehe Einstellungen/ Repositorien</p>
</td>
</tr>
<tr>
<td>
<strong>Issues und Kommentare</strong>
<p>Issues (Bug-Reports, Aufgaben, Verbesserungen) für Repositorien sowie Kommentare zu diesen</p>
</td>
<td>
<p>Benutzer mit Account</p>
</td>
<td>
<p>siehe Einstellungen/ Repositorien</p>
</td>
<td>
<p>Dokumentation, Aufgabenmanagement und Kommunikation über Inhalte</p>
</td>
<td>
<p>Abhängig von Sichtbarkeit der entsprechenden Repositorien, siehe Einstellungen/ Repositorien</p>
</td>
</tr>
</tbody>
</table>
<h4 id="Sicherheit">Sicherheit</h4>
<p>Sämtliche Daten werden verschlüsselt übertragen. Die Nutzung einer unverschlüsselten Verbindung zum Server ist
technisch ausgeschlossen.</p>
<p>Zusätzliche Sicherheitsfunktionen, wie 2-Faktor-Authentifizierung und anwendungsspezifische Logins werden
unterstützt
und können in den Einstellungen aktiviert werden.</p>
<h4 id="Rechenzentrum">Rechenzentrum</h4>
<p>Die Daten werden im Rechenzentrum der <a href="https://www.netcup.de/ueber-netcup/rechenzentrum.php"
target="_blank">netcup GmbH</a> gespeichert. Eine regelmäßige, automatisierte Datensicherung der
Bestandsdaten
wird durchgeführt.
</p>

View File

@ -0,0 +1,122 @@
<p class="text-warning">English translation not available yet!</p>
<h2>Nutzungsbedingungen</h2>
<h3>Bereitstellung</h3>
<p>Mit we.bstly stellt der <a href="https://www.bstly.de" target="_blank">Bastelei e. V.</a> eine Plattform
bereit, um verschiedene digitale Services zeitlich befristet zur Verfügung zu stellen. </p>
<p>we.bstly und damit verbundene Services stehen allen Vereinsmitgliedern des Bastelei e. V. sowie allen
NutzerInnen, die die entsprechenden Services direkt gebucht haben, zur Verfügung.</p>
<p>Gegenstand der Nutzung ist die Bereitstellung we.bstly und den damit verbundenen Services zur Online-Nutzung über das
Internet und die Übermittlung und Speicherung von Daten und Dateien der NutzerInnen.</p>
<p>we.bstly sowie die verschiedenen Services sind einzeln mit ihren Funktionen unter <a href="/services">Aktive
Services</a> aufgelistet.</p>
<h3>Nutzungsrecht</h3>
<p>Die NutzerInnen haben für die Laufzeit der Nutzung das beschränkte, einfache, nicht übertragbare Recht,
we.bstly und damit verbundene Services über das Internet für eigene Zwecke zu nutzen. Darüberhinausgehende
Rechte bestehen nicht.</p>
<p>Die NutzerInnen sind nicht berechtigt, we.bstly und damit verbundene Services Dritten zugänglich zu machen.
Ausgenommen sind explizite Funktionen der einzelnen Services, deren Zweck im Zugang für Dritte liegt.</p>
<h3>Datensicherheit</h3>
<p>we.bstly und damit verbundene Services haben Sicherheitsmerkmale implementiert, die Schutz vor Verlust, Missbrauch
und Manipulation der Daten und Dateien bieten. Dennoch kann ein 100% Schutz nicht gewährleistet werden (siehe <a
href="/terms-of-service#availability">Verfügbarkeit und Leistungsstörungen</a>).</p>
<p>Die NutzerInnen sind für die Daten und Dateien, die sie in we.bstly und damit verbundenen Services ablegen,
verantwortlich. Alle Daten und Dateien in we.bstly und damit verbundenen Services sind aus dem Internet erreichbar
und durch Passwort und Benutzerkennung geschützt. Auch bei starken Passwörtern können diese von Angreifern
ausgespäht werden. Deswegen müssen die NutzerInnen ihre Verbindungskennung (z. B. Login-Namen und Passwörter) geheim
halten, vor dem Zugriff durch Unberechtigte schützen und den ordnungsgemäßen Gebrauch sicherstellen. Die NutzerInnen
müssen den
Bastelei e. V. unverzüglich informieren, sobald sie Kenntnis davon erlangen, dass unbefugten Dritten
ihr Passwort bekannt ist bzw. Ihnen eine Verletzung der Datensicherheit bekannt wird oder von ihnen eine solche
vermutet wird.</p>
<h3>Schutz des Rechenzentrums</h3>
<p>Die NutzerInnen dürfen keine Daten und Dateien speichern oder versenden, die nach ihrer Art oder
Beschaffenheit geeignet sind, den Bestand oder den Betrieb des Rechenzentrums oder des Datennetzes zu gefährden.</p>
<p>Die NutzerInnen müssen jedweden Versuch unterlassen, selbst oder durch Dritte Informationen oder Daten und
Dateien unbefugt abzurufen oder in die software- und hardwaretechnischen Systeme einzugreifen oder eingreifen zu
lassen oder in die Datennetze unbefugt einzudringen.</p>
<p>Ebenfalls untersagt ist jede Handlung, die geeignet ist, den ordnungsgemäßen Betrieb we.bstly und damit verbundenen
Services zu beeinträchtigen.</p>
<h3 id="availability">Verfügbarkeit und Leistungsstörungen</h3>
<p>we.bstly sowie einzelne Services können nicht bereitgestellt werden bei</p>
<ul>
<li>Wartungsarbeiten zur Sicherstellung und Sicherung des Betriebs (diese werden zeitnah angekündigt)</li>
<li>Faktoren, die außerhalb der Kontrolle des Bastelei e. V. liegen (z. B. Naturkatastrophen, Kriege,
Terroranschläge, Aufstände oder staatliche Maßnahmen)</li>
<li>gravierenden Störungen des Betriebs, die durch Services, Hardware oder Software der NutzerInnen oder von Dritten
verursacht wurden.</li>
</ul>
<p>Ansprüche der NutzerInnen gegenüber dem Bastelei e. V. bestehen in diesen Fällen nicht.
</p>
<h3>Verfügbarkeit und Haftung</h3>
<p>we.bstly und damit verbundene Services werden dem Nutzer ohne Gewährleistung zur Verfügung gestellt. Der Bastelei
(bald e. V.) übernimmt bezüglich der Inhalte keine Gewähr und leistet keine Zusicherungen hinsichtlich
Eigenschaften. Der Bastelei e. V. übernimmt zudem keine Garantie hinsichtlich der Richtigkeit und Aktualität
der zur Verfügung gestellten Inhalte.</p>
<p>Der Bastelei e. V. haftet nicht für Schäden, die durch die Nutzung entstehen, es sei denn, die betreffenden
Schäden sind auf vorsätzliches Fehlverhalten, grobe Fahrlässigkeit oder die Verletzung von Pflichten nach dem
Produkthaftungsgesetz zurückzuführen.</p>
<h3>Verbot und Haftung bei Daten und Dateien mit rechtswidrigen Inhalten</h3>
<p>In we.bstly und damit verbundenen Services dürfen die NutzerInnen keine Daten und Dateien in rechtswidriger Weise
oder mit rechtswidrigem Inhalt übermitteln (unter anderem sind die nationalen und internationalen Schutzrechte,
insbesondere Marken- und Urheberrechte sowie die Datenschutzbestimmungen zu beachten). Geltendes Recht und die
Rechte Dritter
sind zu beachten. Des weiteren nicht erlaubt ist außerdem das Verbreiten von Inhalten, die
<ul>
<li>Rassismus</li>
<li>Gewaltverherrlichung und Extremismus irgendwelcher Art</li>
<li>Aufrufe und Anstiftung zu Straftaten und Gesetzesverstößen, Drohungen gegen Leib, Leben oder Eigentum</li>
<li>Hetzen gegen Personen oder Unternehmen</li>
<li>persönlichkeitsverletzende Äußerungen, Verleumdung, Ehrverletzung und üble Nachrede von Nutzern und Dritten
sowie Verstöße gegen das Lauterkeitsrecht</li>
<li>urheberrechtsverletzende Inhalte oder andere Verletzungen von Immaterialgüterrechten</li>
<li>sexuelle Belästigung von Nutzerinnen und Nutzern und Dritten</li>
</ul>
darstellen, betreffen oder beinhalten.
</p>
<p>Insbesondere bei Verdacht auf einen Gesetzesverstoß, bei einem Gesetzesverstoß oder bei einem schwerwiegenden Verstoß
gegen diese Nutzungsbedingungen oder gegen Rechte Dritter behält sich der Bastelei e. V. vor, das Einstellen
von Daten und Dateien abzulehnen und/oder bereits eingestellte Daten und Dateien ohne vorherige Ankündigung zu
sperren oder zu
löschen.</p>
<h3>Verstöße gegen die Nutzungsbedingungen und Sperrung des Nutzeraccounts</h3>
<p>Bei Missachtung der Nutzungsbedingungen oder Missachtung der gesetzesmäßigen Nutzung können NutzerInnen jederzeit
ohne Angabe von Gründen gesperrt oder gelöscht werden.</p>
<h3>Datenschutz</h3>
<p>Personenbezogene Daten werden ausschließlich zur Bereitstellung von we.bstly und damit verbundenen Services
verarbeitet. Die Details dazu sind in der <a href="/privacy-policy">Datenschutzerklärung</a> zu finden.
</p>
<h3>Ablauf des Nutzerkontos und Datenlöschung</h3>
<p>Nach Ablauf des Nutzerkontos wird den NutzerInnen eine Frist von 4 Wochen gewährt das Nutzerkonto zu erneuern. Nach
Ablauf dieser Frist werden alle Daten, denen keine gesetzlichen Aufbewahrungspflichten entgegenstehen,
unwiderruflich gelöscht.</p>
<h3>Freistellungsanspruch</h3>
<p>Die NutzerInnen stellen den Betreibern für den Fall der Inanspruchnahme wegen
vermeintlicher oder tatsächlicher Rechtsverletzung und/oder Verletzung von Rechten Dritter im Zusammenhang mit der
Nutzung von we.bstly sowie den damit verbundenen Services vorgenommenen Handlungen von sämtlichen sich daraus
ergebenen Ansprüchen Dritter frei. Darüber hinaus verpflichten sich die NutzerInnen, alle Kosten zu ersetzen, die
dem Betreiber durch die Inanspruchnahme durch Dritte entstehen. Zu den erstattungsfähigen Kosten zählen auch die
Kosten einer angemessenen Rechtsverteidigung.</p>
<p>Auf den vorliegenden Vertrag ist ausschließlich deutsches Recht anwendbar.</p>

View File

@ -189,3 +189,8 @@ mat-sidenav-container {
.text-right { .text-right {
text-align: right; text-align: right;
} }
.text-warning {
color: darkred;
}