1
0
mirror of synced 2025-10-28 18:19:17 +00:00

login system & basic design system

This commit is contained in:
Valentin PUCCETTI
2023-09-10 13:57:57 +02:00
parent 4fec96b4b1
commit 8340a135d6
25 changed files with 1362 additions and 0 deletions

BIN
views/.DS_Store vendored Normal file

Binary file not shown.

11
views/footer.ejs Normal file
View File

@@ -0,0 +1,11 @@
<footer class="bg-white sticky-footer">
<div class="container my-auto">
<div class="text-center my-auto copyright"><span>Made with ❤️ by <a href="https://github.com/itsmrval" target="_blank">itsmrval</a></span></div>
</div>
</footer>
</div><a class="border rounded d-inline scroll-to-top" href="#page-top"><i class="fas fa-angle-up"></i></a>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"></script>
<script src="/static/assets/js/script.min.js"></script>
</body>
</html>

89
views/index.ejs Normal file
View File

@@ -0,0 +1,89 @@
<%- include('navbar', {active: "index"}); %>
<div class="container-fluid">
<div class="d-sm-flex justify-content-between align-items-center mb-4">
<h3 class="text-dark mb-0">Dashboard</h3>
</div>
<div class="row">
<div class="col-md-6 col-xl-3 mb-4">
<div class="card shadow border-start-primary py-2">
<div class="card-body">
<div class="row align-items-center no-gutters">
<div class="col me-2">
<div class="text-uppercase text-primary fw-bold text-xs mb-1"><span>my keys</span></div>
<div class="text-dark fw-bold h5 mb-0"><span>1</span></div>
</div>
<div class="col-auto"><i class="fas fa-key fa-2x text-gray-300"></i></div>
</div>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3 mb-4">
<div class="card shadow border-start-success py-2">
<div class="card-body">
<div class="row align-items-center no-gutters">
<div class="col me-2">
<div class="text-uppercase text-success fw-bold text-xs mb-1"><span>my authorized servers</span></div>
<div class="text-dark fw-bold h5 mb-0"><span>5</span></div>
</div>
<div class="col-auto"><i class="fas fa-hdd fa-2x text-gray-300"></i></div>
</div>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3 mb-4">
<div class="card shadow border-start-info py-2">
<div class="card-body">
<div class="row align-items-center no-gutters">
<div class="col me-2">
<div class="text-uppercase text-info fw-bold text-xs mb-1"><span>my groups</span></div>
<div class="row g-0 align-items-center">
<div class="col-auto">
<div class="text-dark fw-bold h5 mb-0 me-3"><span>2</span></div>
</div>
</div>
</div>
<div class="col-auto"><i class="fas fa-stream fa-2x text-gray-300"></i></div>
</div>
</div>
</div>
</div>
<div class="col-md-6 col-xl-3 mb-4">
<div class="card shadow border-start-warning py-2">
<div class="card-body">
<div class="row align-items-center no-gutters">
<div class="col me-2">
<div class="text-uppercase text-warning fw-bold text-xs mb-1"><span>Pending requests</span></div>
<div class="text-dark fw-bold h5 mb-0"><span>18</span></div>
</div>
<div class="col-auto"><i class="fas fa-comments fa-2x text-gray-300"></i></div>
</div>
</div>
</div>
</div>
</div>
<div class="card shadow mb-4">
<div class="card-header py-3">
<h6 class="text-primary fw-bold m-0">Server list</h6>
</div>
<ul class="list-group list-group-flush">
<li class="list-group-item">
<div class="row align-items-center no-gutters">
<div class="col me-2">
<h6 class="mb-0"><strong>pve-iut.local</strong></h6><span class="text-xs">Granted 10 september 2023</span>
</div>
<div class="col-auto"><code>root@172.17.0.1</code></div>
</div>
</li>
<li class="list-group-item">
<div class="row align-items-center no-gutters">
<div class="col me-2">
<h6 class="mb-0"><strong>vscode.pve-iut.local</strong></h6><span class="text-xs">Granted 10 september 2023</span>
</div>
<div class="col-auto"><code>root@172.17.0.2</code></div>
</div>
</li>
</ul>
</div>
</div>
</div>
<%- include('footer'); %>

47
views/login.ejs Normal file
View File

@@ -0,0 +1,47 @@
<!DOCTYPE html>
<html data-bs-theme="light" lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>accessgate</title>
<link rel="stylesheet" href="/static/assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i&amp;display=swap">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.12.0/css/all.css">
<link rel="stylesheet" href="/static/assets/css/styles.min.css">
</head>
<body>
<section class="position-relative py-4 py-xl-5">
<div class="container">
<div class="row mb-5">
<div class="col-md-8 col-xl-6 text-center mx-auto">
<h2><a class="navbar-brand d-flex justify-content-center align-items-center sidebar-brand m-0" href="#">
<div class="sidebar-brand-icon rotate-n-15"><i class="fas fa-lock"></i></div>
<div class="sidebar-brand-text mx-3"><span>AccessGate</span></div>
</a></h2>
<p class="w-lg-50">Use your GitHub account to manage AccessGate</p>
</div>
</div>
<div class="row d-flex justify-content-center">
<div class="col-md-6 col-xl-4">
<div class="card mb-5">
<div class="card-body d-flex flex-column align-items-center">
<div class="bs-icon-xl bs-icon-circle bs-icon-primary bs-icon my-4"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-person">
<path d="M8 8a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm2-3a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm4 8c0 1-1 1-1 1H3s-1 0-1-1 1-4 6-4 6 3 6 4Zm-1-.004c-.001-.246-.154-.986-.832-1.664C11.516 10.68 10.289 10 8 10c-2.29 0-3.516.68-4.168 1.332-.678.678-.83 1.418-.832 1.664h10Z"></path>
</svg></div>
<form class="text-center" method="post">
<div class="mb-3"><a class="btn btn-primary d-block w-100" href="/auth/login"><i class="fab fa-github"></i>&nbsp;Log in using GitHub</a></div>
<p class="text-muted">Want to see sources ?</p>
</form>
</div>
</div>
</div>
</div>
</div>
</section>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.1/dist/js/bootstrap.bundle.min.js"></script>
<script src="/static/assets/js/script.min.js"></script>
</body>
</html>

49
views/navbar.ejs Normal file
View File

@@ -0,0 +1,49 @@
<!DOCTYPE html>
<html data-bs-theme="light" lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>Dashboard - AccessGate</title>
<link rel="stylesheet" href="/static/assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i&amp;display=swap">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.12.0/css/all.css">
<link rel="stylesheet" href="/static/assets/css/styles.min.css">
</head>
<body id="page-top">
<div id="wrapper">
<nav class="navbar align-items-start sidebar sidebar-dark accordion bg-gradient-primary p-0 navbar-dark">
<div class="container-fluid d-flex flex-column p-0"><a class="navbar-brand d-flex justify-content-center align-items-center sidebar-brand m-0" href="#">
<div class="sidebar-brand-icon rotate-n-15"><i class="fas fa-lock"></i></div>
<div class="sidebar-brand-text mx-3"><span>AccessGate</span></div>
</a>
<hr class="sidebar-divider my-0">
<ul class="navbar-nav text-light" id="accordionSidebar">
<li class="nav-item"><a class="nav-link <%if(active=="index"){%>active<%}%>" href="/"><i class="fas fa-tachometer-alt"></i><span>Dashboard</span></a></li>
<li class="nav-item"><a class="nav-link <%if(active=="keys"){%>active<%}%>" href="/keys"><i class="fas fa-key"></i><span>Keys</span></a></li>
<li class="nav-item"><a class="nav-link <%if(active=="admin-users"){%>active<%}%>" href="/admin/users"><i class="far fa-user"></i><span>Users</span></a></li>
<li class="nav-item"><a class="nav-link <%if(active=="admin-groups"){%>active<%}%>" href="/admin/groups"><i class="fas fa-stream"></i><span>Groups</span></a></li>
<li class="nav-item"><a class="nav-link <%if(active=="admin-servers"){%>active<%}%>" href="/admin/servers"><i class="far fa-hdd"></i><span>Servers</span></a></li>
<li class="nav-item"><a class="nav-link" href="/auth/logout"><i class="far fa-user-circle"></i><span>Disconnect</span></a></li>
</ul>
</div>
</nav>
<div class="d-flex flex-column" id="content-wrapper">
<div id="content">
<nav class="navbar navbar-expand bg-white shadow mb-4 topbar static-top navbar-light">
<div class="container-fluid"><button class="btn btn-link d-md-none rounded-circle me-3" id="sidebarToggleTop" type="button"><i class="fas fa-bars"></i></button>
<form class="d-none d-sm-inline-block me-auto ms-md-3 my-2 my-md-0 mw-100 navbar-search">
<div class="input-group"></div>
</form>
<ul class="navbar-nav flex-nowrap ms-auto">
<li class="nav-item dropdown no-arrow">
<div class="nav-item dropdown no-arrow"><a class="dropdown-toggle nav-link" aria-expanded="false" data-bs-toggle="dropdown" href="#"><span class="d-none d-lg-inline me-2 text-gray-600 small">Valentin - itsmrval</span><img class="border rounded-circle img-profile" src="assets/img/avatars/43043885.jpeg"></a>
<div class="dropdown-menu shadow dropdown-menu-end animated--grow-in"><a class="dropdown-item" href="#"><i class="fas fa-user fa-sm fa-fw me-2 text-gray-400"></i>&nbsp;Profile</a><a class="dropdown-item" href="#"><i class="fas fa-cogs fa-sm fa-fw me-2 text-gray-400"></i>&nbsp;Settings</a><a class="dropdown-item" href="#"><i class="fas fa-list fa-sm fa-fw me-2 text-gray-400"></i>&nbsp;Activity log</a>
<div class="dropdown-divider"></div><a class="dropdown-item" href="#"><i class="fas fa-sign-out-alt fa-sm fa-fw me-2 text-gray-400"></i>&nbsp;Logout</a>
</div>
</div>
</li>
</ul>
</div>
</nav>