diff --git a/client/pages/AdminPage.tsx b/client/pages/AdminPage.tsx
index 178d4d4..b0179a7 100644
--- a/client/pages/AdminPage.tsx
+++ b/client/pages/AdminPage.tsx
@@ -105,6 +105,30 @@ export const AdminPage = ({}) => {
Nessuna soluzione ancora da correggere
>
)}
+ {user.role === 'admin' && (
+ <>
+
+ Utenti
+
+
+
+
+
+
User 1
+
user1
+
admin
+
2/6/2075 20:32
+
User 2
+
user2
+
moderator
+
5/12/2102 20:61
+
User 3
+
user3
+
studente
+
11/5/2066 20:49
+
+ >
+ )}
>
)
diff --git a/client/styles/main.scss b/client/styles/main.scss
index bc34408..6d9fcb2 100644
--- a/client/styles/main.scss
+++ b/client/styles/main.scss
@@ -494,6 +494,79 @@ main.page-scores {
// Components
//
+.table {
+ display: grid;
+
+ grid-template-columns: repeat(var(--cols), auto);
+
+ box-shadow: -2px 4px 6px 1px #00000018, 0 0 4px 0px #00000010;
+ border: 1px solid #ddd;
+ border-radius: 0.5rem;
+ background: #ffffff;
+
+ user-select: none;
+
+ overflow: hidden;
+
+ .cell {
+ padding: 0.5rem 1rem;
+
+ border-right: 1px solid #ddd;
+ border-bottom: 1px solid #ddd;
+
+ &.last-col {
+ border-right: none;
+ }
+
+ &.last-row {
+ border-bottom: none;
+ }
+
+ &.header {
+ font-weight: 400;
+
+ padding-right: 1rem;
+
+ background: #f0f0f0;
+
+ display: flex;
+ align-items: center;
+ text-align: center;
+ justify-content: space-between;
+ }
+
+ &:not(.header) {
+ user-select: text;
+ }
+ }
+
+ @media screen and (max-width: $device-s-width), (pointer: coarse) {
+ display: flex;
+ flex-direction: column;
+
+ width: 100%;
+
+ .cell {
+ padding: 0.5rem 0.75rem;
+
+ border-bottom: 1px dashed #ddd;
+ border-right: none;
+
+ &.last-row {
+ border-bottom: 1px dashed #ddd;
+ }
+
+ &.last-col {
+ border-bottom: 1px solid #bbb;
+ }
+
+ &.last-row.last-col {
+ border-bottom: none;
+ }
+ }
+ }
+}
+
details {
width: 100%;
max-width: 80ch;
diff --git a/server/auth.ts b/server/auth.ts
index fe49ef2..3eda8fd 100644
--- a/server/auth.ts
+++ b/server/auth.ts
@@ -5,7 +5,7 @@ import { DatabaseConnection, getUser, createUser } from './db/database'
import { UserId } from '../shared/model'
import { SessionService } from './routes'
-export function setupOauth(r: Router, db: DatabaseConnection, sessions: SessionService) {
+export function setupOAuth(r: Router, db: DatabaseConnection, sessions: SessionService) {
const config = {
client: {
id: process.env.OAUTH_CLIENT_ID ?? '',
diff --git a/server/routes.ts b/server/routes.ts
index 8ce832e..e3e0fe5 100644
--- a/server/routes.ts
+++ b/server/routes.ts
@@ -38,7 +38,7 @@ import {
import { initialDatabaseValue } from './db/example-data'
import { validateObjectKeys } from '../shared/utils'
-import { setupOauth } from './auth'
+import { setupOAuth } from './auth'
type SessionId = Opaque
@@ -78,7 +78,7 @@ export async function createApiRouter() {
const authRouter: Router = express.Router()
- setupOauth(authRouter, db, sessions)
+ setupOAuth(authRouter, db, sessions)
r.use('/auth', authRouter)
r.get('/api/status', (req, res) => {