Create everything required to login and register
This commit is contained in:
@ -1,19 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>{% block title %}Welcome!{% endblock %}</title>
|
||||
<link rel="icon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 128 128%22><text y=%221.2em%22 font-size=%2296%22>⚫️</text></svg>">
|
||||
{# Run `composer require symfony/webpack-encore-bundle` to start using Symfony UX #}
|
||||
{% block stylesheets %}
|
||||
{{ encore_entry_link_tags('app') }}
|
||||
{% endblock %}
|
||||
|
||||
{% block javascripts %}
|
||||
{{ encore_entry_script_tags('app') }}
|
||||
{% endblock %}
|
||||
</head>
|
||||
<body>
|
||||
{% block body %}{% endblock %}
|
||||
</body>
|
||||
</html>
|
70
templates/base/base.html.twig
Normal file
70
templates/base/base.html.twig
Normal file
@ -0,0 +1,70 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{% block title %}BLES{% endblock %}</title>
|
||||
<link rel="shortcut icon" type="image/jpg" href="/favicon.png">
|
||||
<script src="https://kit.fontawesome.com/3471b6556e.js" crossorigin="anonymous"></script>
|
||||
{% if chartjs|default(false) %}
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js@3.9.1/dist/chart.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chartjs-adapter-date-fns@2.0.0/dist/chartjs-adapter-date-fns.bundle.min.js"></script>
|
||||
{% endif %}
|
||||
|
||||
{% block css %}
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"
|
||||
integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3"
|
||||
crossorigin="anonymous">
|
||||
{% endblock %}
|
||||
</head>
|
||||
<body>
|
||||
{{ include('base/navbar.html.twig') }}
|
||||
|
||||
{# alert block #}
|
||||
<div class="container">
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class="col-sm mx-auto">
|
||||
{% block flashes %}
|
||||
{% for msg in app.session.flashBag.get('error') %}
|
||||
<div class="alert alert-danger" role="alert">
|
||||
<strong>Error: </strong> {{ msg|raw }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% for msg in app.session.flashBag.get('success') %}
|
||||
<div class="alert alert-success">
|
||||
<strong>Success: </strong> {{ msg|raw }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{# body blocks #}
|
||||
{% block bodyraw %}
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-sm mx-auto">
|
||||
{% block body %}{% endblock %}
|
||||
</div>
|
||||
{% if block('body2') is defined %}
|
||||
<div class="col-sm mx-auto">
|
||||
{{ block('body2') }}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{# javascript block #}
|
||||
{% block js %}
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.min.js"
|
||||
integrity="sha384-QJHtvGhmr9XOIpI6YVutG+2QOK9T+ZnN4kzFN1RtK3zEFEIsxhlmWl5/YESvpZ13"
|
||||
crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"
|
||||
integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4="
|
||||
crossorigin="anonymous"></script>
|
||||
{% endblock %}
|
||||
</body>
|
||||
</html>
|
33
templates/base/navbar.html.twig
Normal file
33
templates/base/navbar.html.twig
Normal file
@ -0,0 +1,33 @@
|
||||
<nav class="navbar navbar-expand-md navbar-dark bg-dark" style="z-index: 1;">
|
||||
<div class="container-fluid">
|
||||
<a title="BlueLinked Eco System" class="navbar-brand" href="{{ path('home') }}">BLES</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar"
|
||||
aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
|
||||
<div class="collapse navbar-collapse" id="navbar">
|
||||
<ul class="navbar-nav me-auto mb-2 mb-md-0">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ path('home') }}">Home</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="navbar-nav my-2 my-lg-0">
|
||||
{% if app.environment == 'dev' %}
|
||||
<li class="nav-item">
|
||||
<a class="btn navbar-text bg-danger" href="#">dev</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if is_granted("IS_AUTHENTICATED_REMEMBERED") %}
|
||||
<span class="nav-item navbar-text mr-sm-2">Logged in as</span>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ path('user_profile') }}">{{ app.user.username }}</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ path('logout') }}">Logout</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
32
templates/security/login.html.twig
Normal file
32
templates/security/login.html.twig
Normal file
@ -0,0 +1,32 @@
|
||||
{% extends 'base/base.html.twig' %}
|
||||
|
||||
{% block title %}Login{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<form action="{{ path('login') }}" method="post">
|
||||
{% if error %}
|
||||
<div class="alert alert-danger">{{ error.messageKey|trans(error.messageData, 'security') }}</div>
|
||||
{% endif %}
|
||||
{% if app.user %}
|
||||
<div class="mb-3">
|
||||
You are already logged in as {{ app.user }}, <a href="{{ path('logout') }}">Logout</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
<h1 class="h3 mb-3 font-weight-normal">Please login</h1>
|
||||
<label for="inputUsername">Username</label>
|
||||
<input type="text" value="{{ last_username }}" name="_username" id="inputUsername" class="form-control" required
|
||||
autofocus>
|
||||
<br/>
|
||||
<label for="inputPassword">Password</label>
|
||||
<input type="password" name="_password" id="inputPassword" class="form-control" required>
|
||||
<input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}">
|
||||
<br/>
|
||||
|
||||
<div class="checkbox mb-3">
|
||||
<label>
|
||||
<input type="checkbox" name="_remember_me"> Remember me
|
||||
</label>
|
||||
</div>
|
||||
<button class="btn btn-primary" type="submit">Login</button>
|
||||
</form>
|
||||
{% endblock %}
|
6
templates/security/register.html.twig
Normal file
6
templates/security/register.html.twig
Normal file
@ -0,0 +1,6 @@
|
||||
{% extends 'base/base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
<h1 class="h3 mb-3 font-weight-normal">Register new user</h1>
|
||||
{{ form(registrationForm) }}
|
||||
{% endblock %}
|
5
templates/simple.html.twig
Normal file
5
templates/simple.html.twig
Normal file
@ -0,0 +1,5 @@
|
||||
{% extends 'base/base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
{{ text | nl2br }}
|
||||
{% endblock %}
|
26
templates/user/profile.html.twig
Normal file
26
templates/user/profile.html.twig
Normal file
@ -0,0 +1,26 @@
|
||||
{% extends "base/base.html.twig" %}
|
||||
|
||||
{% block body %}
|
||||
<div class="row">
|
||||
<div class="col-sm">
|
||||
<h4>{{ app.user.name }}</h4>
|
||||
{% if is_granted('ROLE_API') %}
|
||||
Your api key: {{ app.user.apiKey }} <a class="btn btn-primary" href="{{ path('user_apikey_generate') }}">Regenerate</a> <br/>
|
||||
{% endif %}
|
||||
<br/>
|
||||
{% if is_granted('ROLE_ADMIN') %}
|
||||
<br/><br/>
|
||||
<h4>Latest release stats</h4>
|
||||
Branch: {{ release.branch }} <br/>
|
||||
Date: {{ release.date }} <br/>
|
||||
Hash short: {{ release.commitHashShort }} <br/>
|
||||
Hash long: {{ release.commitHashLong }} <br/>
|
||||
Commit date: {{ release.commitDate }} <br/>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-sm">
|
||||
<h4>Change profile</h4>
|
||||
{{ form(form) }}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
Reference in New Issue
Block a user