updrade with rector

This commit is contained in:
2022-05-03 14:52:04 +02:00
parent d1e613ecc6
commit 6e30560cb9
135 changed files with 5609 additions and 4008 deletions
.env.gitignore.php-cs-fixer.cache.php-cs-fixer.php
assets
composer.jsoncomposer.lock
config
migrations
package.json
public/uploads
rector.php
src
symfony.lock
templates
tools/php-cs-fixer
webpack.config.jsyarn.lock

@ -0,0 +1,65 @@
<div class="d-flex flex-column flex-shrink-0 p-3 text-white bg-dark" style="width: 280px;">
<a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-white text-decoration-none">
<svg class="bi me-2" width="40" height="32"><use xlink:href="#bootstrap"/></svg>
<span class="fs-4">Sidebar</span>
</a>
<hr>
<ul class="nav nav-pills flex-column mb-auto">
<li class="nav-item">
<a href="#" class="nav-link active" aria-current="page">
<svg class="bi me-2" width="16" height="16"><use xlink:href="#home"/></svg>
Home
</a>
</li>
<li>
<a href="#" class="nav-link text-white">
<svg class="bi me-2" width="16" height="16"><use xlink:href="#speedometer2"/></svg>
Dashboard
</a>
</li>
<li>
<a href="#" class="nav-link text-white">
<svg class="bi me-2" width="16" height="16"><use xlink:href="#table"/></svg>
Orders
</a>
</li>
<li>
<a href="#" class="nav-link text-white">
<svg class="bi me-2" width="16" height="16"><use xlink:href="#grid"/></svg>
Products
</a>
</li>
<li>
<a href="#" class="nav-link text-white">
<svg class="bi me-2" width="16" height="16"><use xlink:href="#people-circle"/></svg>
Customers
</a>
</li>
</ul>
<hr>
<div class="dropdown">
<a href="#" class="d-flex align-items-center text-white text-decoration-none dropdown-toggle" id="dropdownUser1" data-bs-toggle="dropdown" aria-expanded="false">
<img src="https://github.com/mdo.png" alt="" width="32" height="32" class="rounded-circle me-2">
<strong>mdo</strong>
</a>
<ul class="dropdown-menu dropdown-menu-dark text-small shadow" aria-labelledby="dropdownUser1">
<li><a class="dropdown-item" href="#">New project...</a></li>
<li><a class="dropdown-item" href="#">Settings</a></li>
<li><a class="dropdown-item" href="#">Profile</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="#">Sign out</a></li>
</ul>
</div>
</div>
<div class="col-sm-2 sidenav-left box text-start" id="main-menu">
<i class="fa fa-lg fa-fw fa-file-code-o" aria-hidden="true"></i>&nbsp;<a href="{{ path('app_projects') }}">Projects</a><br>
<i class="fa fa-lg fa-fw fa-gitea" aria-hidden="true"></i>&nbsp;<a href="//git.24unix.net" target="_blank">Gitea</a>&nbsp;<i
class="fa fa-external-link" aria-hidden="true"></i><br>
<i class="fa fa-lg fa-fw fa-nextcloud" aria-hidden="true"></i>&nbsp;<a href="//cloud.24unix.net"
target="_blank">NextCloud</a>&nbsp;<i
class="fa fa-external-link" aria-hidden="true"></i>
<!-- <a href="//pastebin.24unix.net">pastebin.24unix.net</a>-->
</div>

@ -1,13 +0,0 @@
<footer class="footer">
<nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-bottom navbar-bottom">
<div class="d-flex justify-content-xl-around">
<div>powered by
<a href="#"><img src="{{ asset('build/images/Spookie/spookie_64x64.png') }}" alt="Spookie"></a>
</div>
<div id="legal">
<a href="{{ path('app_imprint') }}">Imprint</a>
<a href="{{ path('app_privacy') }}">Privacy Policy</a>
</div>
</div>
</nav>
</footer>

@ -1,63 +1,77 @@
<nav class="navbar navbar-expand-md navbar-dark bg-dark fixed-top navbar-top">
<header>
<nav class="navbar navbar-expand-md navbar-dark fixed-top navbar-top {{ is_granted('ROLE_PREVIOUS_ADMIN') ? 'bg-warning' : 'bg-dark' }}">
<a class="navbar-brand" href="{{ path('app_main') }}">
<img src="{{ asset('build/images/24unix/24_logo_bg_64x64.png') }}" alt="24unix.net" id="site-logo">
</a>
<a class="navbar-brand" href="{{ path('app_main') }}">
<img src="{{ asset('build/images/24unix/24_logo_bg_64x64.png') }}" alt="24unix.net" id="site-logo">
</a>
<button class="navbar-toggler border-0" type="button" data-toggle="collapse" data-target="#CollapsingNavbar">
&#9776;
</button>
<button class="navbar-toggler border-0" type="button" data-toggle="collapse" data-target="#CollapsingNavbar">
&#9776;
</button>
<div class="collapse navbar-collapse" id="CollapsingNavbar">
<ul class="navbar-nav ms-auto">
<!--
<li>
<form class="d-flex">
<input class="form-control me-2 my-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn" type="submit">Search</button>
</form>
</li>
-->
{% if is_granted('ROLE_USER') %}
<li class="nav-item dropdown me-auto">
<button type="button" id="navbar-dropdown" data-bs-target="#dropdown-menu" data-bs-toggle="dropdown"
class="btn btn-primary dropdown-toggle ml-auto mb-2 button-login">
{{ app.user.username }}
</button>
<div class="collapse navbar-collapse" id="CollapsingNavbar">
<ul class="navbar-nav ms-auto">
{% if is_granted('ROLE_PREVIOUS_ADMIN') %}
<li class="align-bottom">
<a class="dropdown-item" href="{{ path('app_main', { '_switch_user': '_exit'}) }}">Exit
Impersonation</a>
</li>
{% endif %}
<!--
<li>
<form class="d-flex">
<input class="form-control me-2 my-2" type="search" placeholder="Search" aria-label="Search">
<button class="btn" type="submit">Search</button>
</form>
</li>
-->
{% if is_granted('IS_AUTHENTICATED_REMEMBERED') %}
<li class="nav-item dropdown me-auto">
<button type="button" id="navbar-dropdown" data-bs-target="#dropdown-menu"
data-bs-toggle="dropdown"
class="btn btn-primary dropdown-toggle ml-auto mb-2 button-login">
{{ app.user.username }}
</button>
<div class="dropdown-menu dropdown-menu-dark dropdown-menu-end" id="dropdown-menu"
aria-labelledby="navbar-dropdown">
<a class="dropdown-item" href="{{ path('app_profile_edit') }}">
<span class="fa fa-lg fa-fw fa-user" aria-hidden="true"></span>
Profile</a>
<a class="dropdown-item" href="#">
<span class="fa fa-lg fa-fw fa-wrench" aria-hidden="true"></span>
Settings</a>
<div class="dropdown-divider"></div>
{% if is_granted('ROLE_ADMIN') %}
<a class="dropdown-item" href="{{ path('admin') }}">
<span class="fa fa-lg fa-fw fa-cog" aria-hidden="true"></span>
Administration
</a>
<div class="dropdown-menu dropdown-menu-dark dropdown-menu-end" id="dropdown-menu"
aria-labelledby="navbar-dropdown">
<a class="dropdown-item"
href="{{ path('app_profile_edit', { 'username': app.user.username }) }}">
<span class="fa fa-lg fa-fw fa-user" aria-hidden="true"></span>
Profile</a>
<a class="dropdown-item" href="#">
<span class="fa fa-lg fa-fw fa-wrench" aria-hidden="true"></span>
Settings</a>
<div class="dropdown-divider"></div>
{% endif %}
{% if is_granted('ROLE_ADMIN') %}
<a class="dropdown-item" href="{{ path('app_list_user') }}">
<span class="fa fa-lg fa-fw fa-users" aria-hidden="true"></span>
Users
</a>
<a class="dropdown-item" href="{{ path('admin') }}">
<span class="fa fa-lg fa-fw fa-cog" aria-hidden="true"></span>
Administration
</a>
<div class="dropdown-divider"></div>
{% endif %}
<a class="dropdown-item" href="{{ path('app_logout') }}">
<span class="fa fa-lg fa-fw fa-sign-out" aria-hidden="true"></span>&nbsp;
Logout
<a class="dropdown-item" href="{{ path('app_logout') }}">
<span class="fa fa-lg fa-fw fa-sign-out" aria-hidden="true"></span>&nbsp;
Logout
</a>
</div>
</li>
{% else %}
<li class="nav-item">
<a class="btn btn-primary button-login" href="{{ path('app_login') }}" role="button"
id="buttonLogin">
<span class="fa fa-sign-in fa-lg fa-fw" aria-hidden="true"></span>Log In
</a>
</div>
</li>
{% else %}
<li class="nav-item">
<a class="btn btn-primary button-login" href="{{ path('app_login') }}" role="button"
id="buttonLogin">
<span class="fa fa-sign-in fa-lg fa-fw" aria-hidden="true"></span>Log In
</a>
</li>
{% endif %}
</li>
{% endif %}
</ul>
</div>
</nav>
</header>
</ul>
</div>
</nav>

@ -1,3 +1,3 @@
{# templates/admin/index.html.twig #}
{# templates/admin/imprint.html.twig #}
{% extends '@EasyAdmin/page/content.html.twig' %}

@ -11,78 +11,14 @@
{% block javascripts %}
{{ encore_entry_script_tags('app') }}
<!-- Matomo -->
<script>
const _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(["trackPageView"]);
_paq.push(["enableLinkTracking"]);
(function () {
const u = "https://analytics.24unix.net/";
_paq.push(["setTrackerUrl", u + "matomo.php"]);
_paq.push(["setSiteId", "1"]);
const d = document, g = d.createElement("script"), s = d.getElementsByTagName("script")[0];
g.async = true;
g.src = u + "matomo.js";
s.parentNode.insertBefore(g, s);
})();
</script>
<!-- End Matomo Code -->
{% endblock %}
</head>
<body>
{% include '_header.html.twig' %}
<div class="container-fluid text-center">
<div class="row content d-flex justify-content-md-start">
<div class="col-sm-2 sidenav-left box text-start" id="main-menu">
<i class="fa fa-lg fa-fw fa-file-code-o" aria-hidden="true"></i>&nbsp<a href="{{ path('app_projects') }}">Projects</a><br>
<i class="fa fa-lg fa-fw fa-gitea" aria-hidden="true"></i>&nbsp<a href="//git.24unix.net" target="_blank">Gitea</a>&nbsp;<i
class="fa fa-external-link" aria-hidden="true"></i><br>
<i class="fa fa-lg fa-fw fa-nextcloud" aria-hidden="true"></i>&nbsp<a href="//cloud.24unix.net"
target="_blank">NextCloud</a>&nbsp;<i
class="fa fa-external-link" aria-hidden="true"></i>
<!-- <a href="//pastebin.24unix.net">pastebin.24unix.net</a>-->
</div>
<div class="col-sm-9 text-left center-block" id="main-content">
{% for message in app.flashes('success') %}
<div class="alert alert-success">
{{ message }}
</div>
{% endfor %}
{% for message in app.flashes('error') %}
<div class="alert alert-danger">
{{ message }}
</div>
{% endfor %}
{% block body %}
<div class="col">
<h1 class="q-title-show">Quote of the Moment</h1>
<div class="q-display p-3">
{# <i class="fa fa-quote-left"></i> #}
<p class="d-inline">
{{ quote | markdown_to_html }}
</p>
</div>
</div>
{% endblock %}
</div>
<div class="col-sm-1 sidenav" id="spacer">
</div>
</div>
</div>
{% include '_footer.html.twig' %}
<script>
window.user = {{ user|raw }}
window.quote = {{ quote|raw }}
</script>
<div id="app"></div>
</body>
</html>

@ -1,38 +0,0 @@
{# templates/blog/blog_show.html.twig #}
{% extends 'base.html.twig' %}
{% block title %} Blogpost {% endblock %}
{% block body %}
<div class="container">
<div class="row">
<!-- blog List -->
<div class="col-sm-12">
{% for blogpost in blogs %}
<div class="blog-container my-4">
<a href="{{ path('blog', { slug: blogpost.slug }) }} ">
{% if blogpost.teaserImage %}
<img class="blog-img" src="{{ asset('build/images/asteroid.jpeg') }}" alt="asteroid">
{% endif %}
<div class="article-title d-inline-block pl-3 align-middle">
<span>{{ blogpost.title }}</span>
</div>
</a>
<br>
<span class="align-left blog-details">
<img class="article-author-img rounded-circle"
src="{{ asset('build/images/alien-profile.png') }}" alt="profile">
{{ blogpost.author }}
</span>
<span class="pl-5 blog-details float-right">{{ blogpost.createdAt|ago }}</span>
<br>
<span class="blog-teaser">
{{ blogpost.teaser }}
</span>
</div>
{% endfor %}
</div>
</div>
</div>
{% endblock %}

@ -1,15 +0,0 @@
{% extends 'base.html.twig' %}
{% block body %}
Create new Blog
{{ form_start(blogForm) }}
{{ form_widget(blogForm) }}
<button type="submit" class="btn btn-primary">Create</button>
{{ form_end(blogForm) }}
{% endblock %}
{% block title %}
New Blog
{% endblock %}

@ -1,84 +0,0 @@
{# templates/blog/blog_show.html.twig #}
{% extends 'base.html.twig' %}
{% block title %} Blogpost {% endblock %}
{% block body %}
<div class="container box">
<div class="row">
<div class="col-sm-12">
<div class="show-article-container p-3 mt-4">
<div class="row">
<div class="col-sm-12">
<div class="">
<a href="{{ path('blog_edit', { id : blog.id }) }}"><i class="fas fa-edit"></i></a>
<a href="{{ path('blogs') }}"><i class="fas fa-trash-alt"></i></a>
</div>
<img class="show-article-img" src="{{ asset('build/images/asteroid.jpeg') }}" alt="asteroid">
<div class="show-article-title-container d-inline-block pl-3 align-middle">
<span class="show-article-title ">{{ blog.title }}</span>
<br>
<span class="align-left article-details">
<img class="article-author-img rounded-circle" src="{{ asset('build/images/alien-profile.png') }}" alt="profile">
{{ blog.author }}
</span>
<span class="pl-2 article-details">{{ blog.createdAt | ago }} updated: {{ blog.editedAt | ago }} </span>
<span class="pl-2 article-details">
</span>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<div class="article-text">
{{ blog.content }}
</div>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<p class="share-icons mb-5">
<span class="pr-1">Share:</span>
<i class="pr-1 fa-2x fab fa-facebook-square"></i>
<i class="pr-1 fa-2x fab fa-twitter-square"></i>
<i class="pr-1 fa-2x fab fa-reddit-square"></i>
<i class="pr-1 fa-2x fa fa-share-alt-square"></i>
</p>
</div>
</div>
<div class="row">
<div class="col-sm-12">
<h3>
<!--
<i class="pr-3 fa fa-comment"></i>Comments</h3>
-->
<hr>
<div class="row mb-5">
<div class="col-sm-12">
<img class="comment-img rounded-circle" src="{{ asset('build/images/alien-profile.png') }}" alt="profile">
<div class="comment-container d-inline-block pl-3 align-top">
<span class="commenter-name">Amy Oort</span>
<div class="form-group">
<label for="articleText"></label>
<textarea class="form-control comment-form" id="articleText" rows="1"></textarea>
</div>
<button type="submit" class="btn btn-primary">Comment</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

@ -1,20 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}Imprint{% endblock %}
{% block body %}
<div class="imprint-wrapper">
<p>This page is only available in German, as the server is located in Germany.</p>
<p>Inhaltlich Verantwortlicher gemäß § 55 Abs. 2RStV: Michael Espey, Große Kirchreihe 27, 25377 Kollmar</p>
<p>eMail: webmaster (AT) 24unix.net</p>
<p>Für den Inhalt des Internetauftritts ist allein der Inhaber zuständig. Der Inhaber bemüht sich, sein Internetangebot aktuell, korrekt und vollständig zu halten. Dessen ungeachtet kann eine Garantie für die Vollständigkeit, Richtigkeit und letzte Aktualität der Angaben nicht übernommen werden. Daher kann der Inhaber keinerlei Verantwortung oder Haftung weder auf den redaktionellen Inhalt noch für die angebotenen Leistungen auf dieser Website übernehmen. Bei den bereitgestellten Informationen handelt es sich um solche allgemeiner Art, die nicht auf die Bedürfnisse bestimmter Personen oder Unternehmen zugeschnitten sind. Insbesondere soll durch sie keine rechtliche Beratung erfolgen. Trotz sorgfältiger inhaltlicher Kontrolle übernehme ich keine Haftung für die Inhalte externer Links. Für den Inhalt der verlinkten Seiten sind ausschließlich deren Betreiber verantwortlich.</p>
<p>Umsatzsteuer-Identifikationsnummer gemäß § 27a Umsatzsteuergesetz: DE245057708</p>
</div>
{% endblock %}

@ -1,289 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}Privacy{% endblock %}
{% block body %}
<p class="privacy-wrapper">
<h2>This page is only available in German, as the server is located in Germany.</h2>
<p style="text-align:left">Der Betreiber der Internetseite 24unix.net nimmt den Schutz Deiner persönlichen Daten
sehr ernst.
Er behandelt Deine Daten vertraulich und entsprechend der gesetzlichen Datenschutzvorschriften sowie dieser
Datenschutzerklärung.
Die Kontaktdaten des Ansprechpartners kannst Du dem Impressum entnehmen.
Zusätzlich stehen Dir die Administratoren gerne unter webmaster@24unix.net zur Verfügung.<p>
<b>Behandlung personenbezogener Daten</b>
<p style="text-align:left">Die Nutzung von 24unix.net zum Lesen und Suchen ist ohne Angabe von personenbezogenen
Daten möglich.
Die Nutzung der Angebote zur Diskussion (z.B. Schreiben von Beiträgen, private Nachrichten empfangen und
verfassen) benötigt eine vorherige Registrierung.
Die im Zuge dieser Registrierung eingegebenen Daten, die aus der Eingabemaske des Registrierungsformulars
ersichtlich sind, umfassen u.a. E-Mailadresse, Benutzername (Nutzung eines Pseudonyms möglich) und Passwort.
Diese Daten werden ausschließlich für die Verwendung des Angebots seitens 24unix.net erhoben und gespeichert.
Mit der Registrierung werden zudem das Datum sowie die Uhrzeit der Registrierung gespeichert.
Dies dient dem Fall, dass ein Dritter deine Daten missbraucht und sich mit diesen Daten ohne dein Wissen auf
24unix.net registriert sowie zur Absicherung des Betreibers.
Zugriff auf deine Registrierungsdaten haben ausschließlich der Betreiber (siehe Impressum) sowie die berufenen
Forenadministratoren (siehe Admin-Team).
Alle diese Parteien sind dieser Datenschutzrichtlinie verpflichtet. Eine Weitergabe deiner Daten an Dritte
erfolgt nicht.
Ein Abgleich der so erhobenen Daten mit Daten, die möglicherweise durch andere Komponenten (z.B. in
Server-Log-Dateien) erhoben werden, erfolgt ebenfalls nicht.
24unix.net anonymisiert sämtliche IP-Adressen seiner Nutzer automatisch nach drei Wochen.
Der Betreiber weist darauf hin, dass die Datenübertragung im Internet (z.B. bei der Kommunikation per E-Mail)
Sicherheitslücken aufweist.
Einen lückenlosen Schutz deiner Daten vor dem Zugriff durch Dritte kann der Betreiber daher nicht
gewährleisten.</p>
<b>Speicherung des Passworts</b>
<p style="text-align:left">Dein Passwort wird mit einer Einwegeverschlüsselung (Hash) gespeichert, sodass der
originale Inhalt nicht rekonstruiert werden kann.
Jedoch ist zu empfehlen, dieses Passwort nicht auf einer Vielzahl von Webseiten zu verwenden.
Insbesondere wird dich kein Vertreter seitens 24unix.net (Betreiber oder Administratoren) nach deinem Passwort
fragen.
Solltest du dein Passwort vergessen haben, so nutze die Funktion „Ich habe mein Passwort vergessen“.
Die Forensoftware fragt dich daraufhin nach deinem Benutzernamen sowie eMailadresse und sendet anschließend ein
neu generiertes Passwort an deine hinterlegte Adresse.</p>
<b>Hinweis zur TLS-Verschlüsselung</b>
<p style="text-align:left">24unix.net wird über das Secure-http-Protokoll ausgeliefert. Diese TLS (früher:
SSL)-Verschlüsselung stellt nach derzeitigem technischen Stand sicher,
dass kein Dritter übertragene Daten mitlesen bzw. verändern kann. Dies gilt sowohl für die Inhalte der Seite als
auch für Daten,
die Ihr durch die Nutzung von Formularen an uns sendet.</p>
<b>Kommentarmöglichkeit</b>
<p style="text-align:left">24unix.net bietet Dir die Möglichkeit, Kommentare zu den einzelnen Beiträgen zu
hinterlassen.
Hierbei wird die IP-Adresse des Verfassers/Anschlussinhabers für drei Wochen gespeichert, um sie ggf. an
Strafermittlungsbehörden weiterleiten zu können wenn wir dazu verpflichtet werden sollten.
Eine Weitergabe von Daten an Dritte erfolgt nicht. Ein Abgleich der so erhobenen Daten mit Daten, die
möglicherweise durch andere Komponenten seitens 24unix.net erhoben werden,
erfolgt ebenfalls nicht.</p>
<b>Nutzung von Cookies</b>
<p style="text-align:left">24unix.net verwendet sogenannte Cookies. Dies sind kleine Textdateien, die auf Deinem
Rechner lokal abgelegt werden und die Dein Browser speichert.
Cookies dienen dazu, das Forum nutzerfreundlicher, effektiver und sicherer zu machen.
<!-- Alle Cookies werden standardmäßig für ein Jahr angelegt, können jedoch jederzeit über einen am Ende der Seite
[url="https://rc-heli-fan.org/ucp.php?mode=delete_cookies"]auffindbaren Link[/url] gelöscht werden.-->
Cookies werden im 24unix.net für folgende Funktionen genutzt:</p>
<ul style="text-align:left">
<li>Speichern der persönlichen Einstellung der User, über ein- oder ausgeklappte Kategorien
<li>Den automatischen Login-Dienst zu nutzen
<li>Die Sitzungs-ID. Mit diesem Cookie wird in Verbindung mit der Benutzer-ID der Nutzer identifiziert.
<li>Die User ID des Benutzers
<li>Speichern, ob der User den Hinweis des Forums, dass Cookies genutzt werden, bestätigt hat.
<li>Markieren von gelesenen/ungelesenen Beiträgen für Gäste
</ul>
<p style="text-align:left">Du kannst den Umgang mit Cookies in Deinem Browser konfigurieren, z.B. das du über das
Speichern neuer Cookies
informiert wirst.
Bei der Deaktivierung von Cookies im Browser kann die Funktionalität des 24unix.nets eingeschränkt sein.</p>
<b>Zugriffsdaten in Server-Log-Dateien</b>
<p style="text-align:left">24unix.net erhebt und speichert Informationen in sogenannten Server-Log-Dateien, die Dein
Browser automatisch übermittelt.
Diese Daten werden bis zu zehn Wochen gespeichert. Sie umfassen:</p>
<ul style="text-align:left">
<li>Browsertyp und -version</li>
<li>verwendetes Betriebssystem</li>
<li>Webseite, von der aus du uns besuchst (Referrer URL)</li>
<li>die aufgerufene Seite</li>
<li>Datum und Uhrzeit des Zugriffs</li>
<li>die Internet Protokoll (IP)-Adresse</li>
</ul>
<p style="text-align:left">Die Verarbeitung erfolgt gemäß Art. 6 Abs. 1 lit. f DSGVO auf Basis unseres berechtigten Interesses an
der Verbesserung der Stabilität
und Funktionalität unserer Website. Eine Weitergabe oder anderweitige Verwendung der Daten findet nicht statt.
Wir behalten uns allerdings vor, die Server-Logfiles nachträglich zu überprüfen, sollten konkrete Anhaltspunkte
auf eine rechtswidrige Nutzung hinweisen.</p>
<b>Gestattung der Kontaktaufnahme</b>
<p style="text-align:left">Du gestattest dem Betreiber und den Administratoren, dich unter den von dir angegebenen
Kontaktdaten zu kontaktieren,
sofern dies zur Übermittlung zentraler Informationen über das Forum erforderlich ist. Darüber hinaus dürfen der
Betreiber,
Administratoren und andere registrierte Benutzer des Forums dich kontaktieren, sofern du dies an entsprechender
Stelle erlaubt hast.
Im Rahmen der Kontaktaufnahme mit uns (z.B. per eMail) werden personenbezogene Daten (IP Adressen) erhoben.
Diese Daten werden ausschließlich zum Zweck der Beantwortung deines Anliegens bzw. für die Kontaktaufnahme und
die damit verbundene technische Administration gespeichert und verwendet. Rechtsgrundlage für die Verarbeitung
der Daten ist unser berechtigtes Interesse an der Beantwortung deines Anliegens gemäß Art. 6 Abs. 1 lit. f
DSGVO.
Zielt Deine Kontaktierung auf den Abschluss eines Vertrages ab, so ist zusätzliche Rechtsgrundlage für die
Verarbeitung Art. 6 Abs. 1 lit. b DSGVO.
Deine Daten werden nach abschließender Bearbeitung der Anfrage gelöscht, dies ist der Fall, wenn sich aus den
Umständen entnehmen lässt,
dass der betroffene Sachverhalt abschließend geklärt ist und sofern keine gesetzlichen Aufbewahrungspflichten
entgegenstehen.</p>
<b>Rechte des Betroffenen</b>
<p style="text-align:left">Das geltende Datenschutzrecht gewährt dir gegenüber dem Verantwortlichen hinsichtlich der
Verarbeitung deiner personenbezogenen Daten
umfassende Betroffenenrechte (Auskunfts- und Interventionsrechte), über die wir dich nachstehend
informieren:</p>
<ul style="text-align:left">
<li>Auskunftsrecht gemäß Art. 15 DSGVO: Du hast insbesondere ein Recht auf Auskunft über Deine von uns
verarbeiteten personenbezogenen Daten,
die Verarbeitungszwecke, die Kategorien der verarbeiteten personenbezogenen Daten, die Empfänger oder
Kategorien
von Empfängern,
gegenüber denen Deine Daten offengelegt wurden oder werden, die geplante Speicherdauer bzw. die Kriterien
für
die Festlegung der Speicherdauer,
das Bestehen eines Rechts auf Berichtigung, Löschung, Einschränkung der Verarbeitung, Widerspruch gegen die
Verarbeitung,
Beschwerde bei einer Aufsichtsbehörde, die Herkunft Deiner Daten, wenn diese nicht durch uns bei dir erhoben
wurden,
das Bestehen einer automatisierten Entscheidungsfindung einschließlich Profiling und ggf. aussagekräftige
Informationen
über die involvierte Logik und die Dich betreffende Tragweite und die angestrebten Auswirkungen einer
solchen
Verarbeitung,
sowie dein Recht auf Unterrichtung, welche Garantien gemäß Art. 46 DSGVO bei Weiterleitung deiner Daten in
Drittländer bestehen.
</li>
<li>Recht auf Berichtigung gemäß Art. 16 DSGVO: Du hast ein Recht auf unverzügliche Berichtigung dich
betreffender unrichtiger Daten
und/oder Vervollständigung deiner bei uns gespeicherten unvollständigen Daten.
</li>
<li>Recht auf Löschung gemäß Art. 17 DSGVO: Du hast das Recht, die Löschung Deiner personenbezogenen Daten bei
Vorliegen
der Voraussetzungen des Art. 17 Abs. 1 DSGVO zu verlangen. Dieses Recht besteht jedoch insbesondere dann
nicht,
wenn die Verarbeitung zur Ausübung des Rechts auf freie Meinungsäußerung und Information, zur Erfüllung
einer
rechtlichen
Verpflichtung, aus Gründen des öffentlichen Interesses oder zur Geltendmachung, Ausübung oder Verteidigung
von
Rechtsansprüchen erforderlich ist.
</li>
<li>Recht auf Einschränkung der Verarbeitung gemäß Art. 18 DSGVO: Du hast das Recht, die Einschränkung der
Verarbeitung Deiner personenbezogenen
Daten zu verlangen, solange die von dir bestrittene Richtigkeit Deiner Daten überprüft wird, wenn du eine
Löschung Deiner Daten wegen unzulässiger
Datenverarbeitung ablehnst und stattdessen die Einschränkung der Verarbeitung Deiner Daten verlangen, wenn
du
Deine Daten zur Geltendmachung,
Ausübung oder Verteidigung von Rechtsansprüchen benötigst, nachdem wir diese Daten nach Zweckerreichung
nicht
mehr benötigen oder wenn du Widerspruch
aus Gründen deiner besonderen Situation eingelegt hast, solange noch nicht feststeht, ob unsere berechtigten
Gründe überwiegen.
</li>
<li>Recht auf Unterrichtung gemäß Art. 19 DSGVO: Hast Du das Recht auf Berichtigung, Löschung oder Einschränkung
der Verarbeitung gegenüber
dem Verantwortlichen geltend gemacht, ist dieser verpflichtet, allen Empfängern, denen die dich betreffenden
personenbezogenen Daten
offengelegt wurden, diese Berichtigung oder Löschung der Daten oder Einschränkung der Verarbeitung
mitzuteilen,
es sei denn, dies erweist
sich als unmöglich oder ist mit einem unverhältnismäßigen Aufwand verbunden. Dir steht das Recht zu, über
diese
Empfänger unterrichtet zu werden.
</li>
<li>Recht auf Datenübertragbarkeit gemäß Art. 20 DSGVO: Du hast das Recht, Deine personenbezogenen Daten, die du
uns bereitgestellt hast,
in einem strukturierten, gängigen und maschinenlesebaren Format zu erhalten oder die Übermittlung an einen
anderen Verantwortlichen
zu verlangen, soweit dies technisch machbar ist.
</li>
<li>Recht auf Widerruf erteilter Einwilligungen gemäß Art. 7 Abs. 3 DSGVO: Du hast das Recht, eine einmal
erteilte Einwilligung
in die Verarbeitung von Daten jederzeit mit Wirkung für die Zukunft zu widerrufen. Im Falle des Widerrufs
werden
wir die betroffenen
Daten unverzüglich löschen, sofern eine weitere Verarbeitung nicht auf eine Rechtsgrundlage zur
einwilligungslosen Verarbeitung gestützt
werden kann. Durch den Widerruf der Einwilligung wird die Rechtmäßigkeit der aufgrund der Einwilligung bis
zum
Widerruf erfolgten Verarbeitung nicht berührt.
</li>
<li>Recht auf Beschwerde gemäß Art. 77 DSGVO: Wenn du der Ansicht bist, dass die Verarbeitung der Dich
betreffenden personenbezogenen Daten gegen die DSGVO
verstößt, hast du - unbeschadet eines anderweitigen verwaltungsrechtlichen oder gerichtlichen Rechtsbehelfs
-
das Recht auf Beschwerde
bei einer Aufsichtsbehörde, insbesondere in dem Mitgliedstaat deines Aufenthaltsortes, deines Arbeitsplatzes
oder des Ortes des mutmaßlichen Verstoßes.
</li>
</ul>
<b>Widerspruchsrecht</b>
<p style="text-align:left">Du hast das Recht, aus Gründen, die sich aus Deiner besonderen Situation ergibt,
jederzeit gegen die Verarbeitung der Dich betreffenden
personenbezogenen Daten, die aufgrund von Art. 6 Abs. 1 lit. e oder f DSGVO erfolgt, Widerspruch einzulegen;
dies gilt auch für ein auf diese Bestimmungen gestütztes Profiling.
Der Verantwortliche verarbeitet die Dich betreffenden personenbezogenen Daten nicht mehr, es sei denn, er kann
zwingende schutzwürdige Gründe
für die Verarbeitung nachweisen, die deine Interessen, Rechte und Freiheiten überwiegen, oder die Verarbeitung
dient der Geltendmachung,
Ausübung oder Verteidigung von Rechtsansprüchen.
Werden die Dich betreffenden personenbezogenen Daten verarbeitet, um Direktwerbung zu betreiben, hast du das
Recht,
jederzeit Widerspruch gegen die Verarbeitung der Dich betreffenden personenbezogenen Daten zum Zwecke derartiger
Werbung einzulegen;
dies gilt auch für das Profiling, soweit es mit solcher Direktwerbung in Verbindung steht.
Widersprichst du der Verarbeitung für Zwecke der Direktwerbung, so werden die dich betreffenden
personenbezogenen Daten nicht mehr für diese Zwecke verarbeitet.
Du hast die Möglichkeit, im Zusammenhang mit der Nutzung von Diensten der Informationsgesellschaft ungeachtet
der Richtlinie 2002/58/EG Dein
Widerspruchsrecht mittels automatisierter Verfahren auszuüben, bei denen technische Spezifikationen verwendet
werden.
Du hast auch das Recht, aus Gründen, die sich aus Deiner besonderen Situation ergeben, bei der Verarbeitung Dich
betreffender personenbezogener Daten,
die zu wissenschaftlichen oder historischen Forschungszwecken oder zu statistischen Zwecken gem. Art. 89 Abs. 1
DSGVO erfolgt, dieser zu widersprechen.
Dein Widerspruchsrecht kann insoweit beschränkt werden, als es voraussichtlich die Verwirklichung der
Forschungs- oder Statistikzwecke unmöglich
macht oder ernsthaft beeinträchtigt und die Beschränkung für die Erfüllung der Forschungs- oder Statistikzwecke
notwendig ist.</p>
<b>Geltungsbereich dieser Richtlinie</b>
<p>Diese Richtlinie umfasst alle Seiten, die unter 24unix.net gespeichert sind.
Ergeben sich Änderungen an dieser Richtlinie, werden die Benutzer des Forums hierüber informiert und es besteht
ein Widerspruchsrecht.
Explizit keinen Einfluss hat der Betreiber auf externe, verlinkte Webseiten, auf denen diese Richtlinie nicht
gilt.</p>
Quellen:
<ul style="text-align:left;padding-bottom: 200px">
<li><a href="https://www.ratgeberrecht.eu">Muster-Datenschutzerklärung der Anwaltskanzlei Weiß & Partner</a>
</li>
<li><a href="https://www.e-recht24.de">e-recht24.de</a></li>
<li><a href="https://dsaforum.de/app.php/datenschutz">Datenschutzerklärung des DSA-Forums</a></li>
<li>eigene Ergänzungen</li>
</ul>
{% endblock %}

@ -1,4 +1,4 @@
{# templates/projects/index.html.twig #}
{# templates/projects/imprint.html.twig #}
{% extends 'base.html.twig' %}
{% block title %} Projects {% endblock %}

@ -1,11 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}Password Reset Email Sent{% endblock %}
{% block body %}
<p>
If an account matching your email exists, then an email was just sent that contains a link that you can use to reset your password.
This link will expire in {{ resetToken.expirationMessageKey|trans(resetToken.expirationMessageData, 'ResetPasswordBundle') }}.
</p>
<p>If you don't receive an email please check your spam folder or <a href="{{ path('app_forgot_password_request') }}">try again</a>.</p>
{% endblock %}

@ -1,11 +0,0 @@
<h1>Hi! Please confirm your email!</h1>
<p>
Please confirm your email address by clicking the following link: <br><br>
<a href="{{ signedUrl }}">Confirm my Email</a>.
This link will expire in {{ expiresAtMessageKey|trans(expiresAtMessageData, 'VerifyEmailBundle') }}.
</p>
<p>
Cheers!
</p>

@ -1,9 +0,0 @@
<h1>Hi!</h1>
<p>To reset your password, please visit the following link</p>
<a href="{{ url('app_reset_password', {token: resetToken.token}) }}">{{ url('app_reset_password', {token: resetToken.token}) }}</a>
<p>This link will expire in {{ resetToken.expirationMessageKey|trans(resetToken.expirationMessageData, 'ResetPasswordBundle') }}.</p>
<p>Cheers!</p>

@ -9,10 +9,9 @@
<form method="post" class="row g-3">
<h1 class="h3 mb-3 font-weight-normal">Please sign in</h1>
{% if error is defined %}
error
{% if error %}
<div class="alert-dark alert-danger">
{# {{ error.messageKey|trans(error.messageData, 'security') }} # #}
{{ error.messageKey|trans(error.messageData, 'security') }}
</div>
{% endif %}

@ -1,81 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}Register{% endblock %}
{% block body %}
{% for flashError in app.flashes('verify_email_error') %}
<div class="alert alert-danger" role="alert">{{ flashError }}</div>
{% endfor %}
<div class="container">
<div class="d-flex justify-content-center h-100">
<div class="card-header">
<h3>Register</h3>
</div>
<div class="card">
<div class="card-body">
{{ form_start(registrationForm) }}
<div class="input-group form-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fas fa-user"></i></span>
</div>
{{ form_widget(registrationForm.username, {'attr': {'placeholder':'Username'}} ) }}
</div>
<div class="input-group form-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fas fa-key"></i></span>
</div>
{{ form_widget(registrationForm.plainPassword, {'attr': {'placeholder':'Password'}} ) }}
</div>
<div class="input-group form-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ form_widget(registrationForm.firstName, {'attr': {'placeholder':'First Name'}} ) }}
</div>
<div class="input-group form-group">
<div class="input-group-prepend">
<span class="input-group-text"></span>
</div>
{{ form_widget(registrationForm.lastName, {'attr': {'placeholder':'Last Name'}} ) }}
</div>
<div class="input-group form-group">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fas fa-envelope-square"></i></span>
</div>
{{ form_widget(registrationForm.email, {'attr': {'placeholder':'eMail'}} ) }}
</div>
{{ form_row(registrationForm.agreeTerms) }}
<button type="submit" class="submit-button">Register</button>
{{ form_end(registrationForm) }}
</div>
<div class="card-footer">
<div class="d-flex justify-content-center links">
Already have an account? &nbsp;<a href=" {{ path('app_login') }}">Sign In!</a>
</div>
<div class="d-flex justify-content-center">
<a href="#">Forgot your password?</a>
</div>
<!--
<div class="d-flex justify-content-center social_icon">
<span><i class="fab fa-apple"></i></span>
<span><i class="fab fa-facebook"></i></span>
<span><i class="fab fa-google-plus"></i></span>
<span><i class="fab fa-twitter"></i></span>
</div>
-->
</div>
</div>
</div>
</div>
{% endblock %}

@ -1,22 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}Reset your password{% endblock %}
{% block body %}
{% for flashError in app.flashes('reset_password_error') %}
<div class="alert alert-danger" role="alert">{{ flashError }}</div>
{% endfor %}
<h1>Reset your password</h1>
{{ form_start(requestForm) }}
{{ form_row(requestForm.email) }}
<div>
<small>
Enter your email address and we we will send you a
link to reset your password.
</small>
</div>
<button class="btn btn-primary">Send password reset email</button>
{{ form_end(requestForm) }}
{% endblock %}

@ -1,12 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}Reset your password{% endblock %}
{% block body %}
<h1>Reset your password</h1>
{{ form_start(resetForm) }}
{{ form_row(resetForm.plainPassword) }}
<button class="btn btn-primary">Reset password</button>
{{ form_end(resetForm) }}
{% endblock %}

@ -1,20 +0,0 @@
{% extends 'base.html.twig' %}
{% block title %}Hello UserController!{% endblock %}
{% block body %}
<style>
.example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; }
.example-wrapper code { background: #F5F5F5; padding: 2px 6px; }
</style>
<div class="example-wrapper">
<h1>Hello {{ controller_name }}! ✅</h1>
This friendly message is coming from:
<ul>
<li>Your controller at <code><a href="{{ '/Users/tracer/Projects/24unix.net/24unix.net_web/24unix/src/Controller/UserController.php'|file_link(0) }}">src/Controller/UserController.php</a></code></li>
<li>Your template at <code><a href="{{ '/Users/tracer/Projects/24unix.net/24unix.net_web/24unix/templates/user/index.html.twig'|file_link(0) }}">templates/user/index.html.twig</a></code></li>
</ul>
</div>
{% endblock %}

@ -0,0 +1,269 @@
{% extends 'base.html.twig' %}
{% block title %}
Userlist
{% endblock %}
{% block body %}
<div class="container box rounded bg-dark mt-5 mb-5">
<div class="row">
<table class="table table-striped">
<thead>
<tr>
<th scope="col">Username</th>
<th scope="col">First</th>
<th scope="col">Last</th>
<th scope="col">Registered</th>
</tr>
</thead>
{% for user in users %}
<tr>
<td>
<a href="{{ path('app_main', { '_switch_user': user.username }) }}">{{ user.username }}</a>
</td>
<td>
{{ user.firstName }}
</td>
<td>
{{ user.lastName }}
</td>
<td>
{{ user.createdAt|ago }}
</td>
</tr>
{% endfor %}
</table>
</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="card bg-dark">
<div class="card-body">
<h5 class="card-title text-uppercase mb-0">Manage Users</h5>
</div>
<div class="table-responsive">
<table class="table no-wrap user-table mb-0">
<thead>
<tr>
<th scope="col" class="border-0 text-uppercase font-medium pl-4">#</th>
<th scope="col" class="border-0 text-uppercase font-medium">Name</th>
<th scope="col" class="border-0 text-uppercase font-medium">Occupation</th>
<th scope="col" class="border-0 text-uppercase font-medium">Email</th>
<th scope="col" class="border-0 text-uppercase font-medium">Added</th>
<th scope="col" class="border-0 text-uppercase font-medium">Category</th>
<th scope="col" class="border-0 text-uppercase font-medium">Manage</th>
</tr>
</thead>
<tbody>
<tr>
<td class="pl-4">1</td>
<td>
<h5 class="font-medium mb-0">Daniel Kristeen</h5>
<span class="text-muted">Texas, Unitedd states</span>
</td>
<td>
<span class="text-muted">Visual Designer</span><br>
<span class="text-muted">Past : teacher</span>
</td>
<td>
<span class="text-muted">daniel@website.com</span><br>
<span class="text-muted">999 - 444 - 555</span>
</td>
<td>
<span class="text-muted">15 Mar 1988</span><br>
<span class="text-muted">10: 55 AM</span>
</td>
<td>
<select class="form-control category-select" id="exampleFormControlSelect1">
<option>Modulator</option>
<option>Admin</option>
<option>User</option>
<option>Subscriber</option>
</select>
</td>
<td>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle"><i class="fa fa-key"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-trash"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-edit"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-upload"></i> </button>
</td>
</tr>
<tr>
<td class="pl-4">2</td>
<td>
<h5 class="font-medium mb-0">Emma Smith</h5>
<span class="text-muted">Texas, Unitedd states</span>
</td>
<td>
<span class="text-muted">Visual Designer</span><br>
<span class="text-muted">Past : teacher</span>
</td>
<td>
<span class="text-muted">daniel@website.com</span><br>
<span class="text-muted">999 - 444 - 555</span>
</td>
<td>
<span class="text-muted">15 Mar 1855</span><br>
<span class="text-muted">10: 00 AM</span>
</td>
<td>
<select class="form-control category-select" id="exampleFormControlSelect1">
<option>Modulator</option>
<option>Admin</option>
<option>User</option>
<option>Subscriber</option>
</select>
</td>
<td>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle"><i class="fa fa-key"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-trash"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-edit"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-upload"></i> </button>
</td>
</tr>
<tr>
<td class="pl-4">3</td>
<td>
<h5 class="font-medium mb-0">Olivia Johnson</h5>
<span class="text-muted">Texas, Unitedd states</span>
</td>
<td>
<span class="text-muted">Visual Designer</span><br>
<span class="text-muted">Past : teacher</span>
</td>
<td>
<span class="text-muted">daniel@website.com</span><br>
<span class="text-muted">999 - 444 - 555</span>
</td>
<td>
<span class="text-muted">17 Aug 1988</span><br>
<span class="text-muted">12: 55 AM</span>
</td>
<td>
<select class="form-control category-select" id="exampleFormControlSelect1">
<option>Modulator</option>
<option>Admin</option>
<option>User</option>
<option>Subscriber</option>
</select>
</td>
<td>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle"><i class="fa fa-key"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-trash"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-edit"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-upload"></i> </button>
</td>
</tr>
<tr>
<td class="pl-4">4</td>
<td>
<h5 class="font-medium mb-0">Isabella Williams</h5>
<span class="text-muted">Texas, Unitedd states</span>
</td>
<td>
<span class="text-muted">Visual Designer</span><br>
<span class="text-muted">Past : teacher</span>
</td>
<td>
<span class="text-muted">daniel@website.com</span><br>
<span class="text-muted">999 - 444 - 555</span>
</td>
<td>
<span class="text-muted">26 Mar 1999</span><br>
<span class="text-muted">10: 55 AM</span>
</td>
<td>
<select class="form-control category-select" id="exampleFormControlSelect1">
<option>Modulator</option>
<option>Admin</option>
<option>User</option>
<option>Subscriber</option>
</select>
</td>
<td>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle"><i class="fa fa-key"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-trash"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-edit"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-upload"></i> </button>
</td>
</tr>
<tr>
<td class="pl-4">5</td>
<td>
<h5 class="font-medium mb-0">Sophia Jones</h5>
<span class="text-muted">Texas, Unitedd states</span>
</td>
<td>
<span class="text-muted">Visual Designer</span><br>
<span class="text-muted">Past : teacher</span>
</td>
<td>
<span class="text-muted">daniel@website.com</span><br>
<span class="text-muted">999 - 444 - 555</span>
</td>
<td>
<span class="text-muted">16 Aug 2001</span><br>
<span class="text-muted">10: 55 AM</span>
</td>
<td>
<select class="form-control category-select" id="exampleFormControlSelect1">
<option>Modulator</option>
<option>Admin</option>
<option>User</option>
<option>Subscriber</option>
</select>
</td>
<td>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle"><i class="fa fa-key"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-trash"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-edit"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-upload"></i> </button>
</td>
</tr>
<tr>
<td class="pl-4">6</td>
<td>
<h5 class="font-medium mb-0">Charlotte Brown</h5>
<span class="text-muted">Texas, Unitedd states</span>
</td>
<td>
<span class="text-muted">Visual Designer</span><br>
<span class="text-muted">Past : teacher</span>
</td>
<td>
<span class="text-muted">daniel@website.com</span><br>
<span class="text-muted">999 - 444 - 555</span>
</td>
<td>
<span class="text-muted">15 Mar 1988</span><br>
<span class="text-muted">10: 55 AM</span>
</td>
<td>
<select class="form-control category-select" id="exampleFormControlSelect1">
<option>Modulator</option>
<option>Admin</option>
<option>User</option>
<option>Subscriber</option>
</select>
</td>
<td>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle"><i class="fa fa-key"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-trash"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-edit"></i> </button>
<button type="button" class="btn btn-outline-info btn-circle btn-lg btn-circle ml-2"><i class="fa fa-upload"></i> </button>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

@ -14,6 +14,8 @@
width="150px"
src=" {{ asset('build/images/tracer_schmolle.png') }}" alt="profile image">
<span class="font-weight-bold">{{ user.username }}</span>
<span class="font-weight-bold"><a href="{{ path('app_main', { '_switch_user': app.user.username }) }}">switch user {{ user.username }}</span>
<span class="text-white-50"><i class="fa fa-lg fa-envelope me-1"></i>{{ user.email }}</span>
</div>
</div>