d718c5a372
CI / compile_and_lint (push) Failing after 0s
CI / docker_build (linux/amd64, -linux-amd64-duckdb, duckdb) (push) Failing after 0s
CI / docker_build (linux/arm64, -linux-arm64, minimal) (push) Failing after 2s
CI / docker_build (linux/arm64, -linux-arm64-duckdb, duckdb) (push) Failing after 1s
CI / docker_build (linux/amd64, minimal) (push) Failing after 1s
CI / test (, sqlite, sqlite::memory:) (push) Has been skipped
CI / test (mssql, mssql, mssql://root:Password123!@127.0.0.1/sqlpage) (push) Has been skipped
CI / test (mysql, mysql, mysql://root:Password123!@127.0.0.1/sqlpage) (push) Has been skipped
CI / test (oracle, oracle, Driver=Oracle 21 ODBC driver;Dbq=//127.0.0.1:1521/FREEPDB1;Uid=root;Pwd=Password123!) (push) Has been skipped
CI / test (postgres, odbc, Driver=PostgreSQL Unicode;Server=127.0.0.1;Port=5432;Database=sqlpage;UID=root;PWD=Password123!, true) (push) Has been skipped
CI / test (postgres, postgres, postgres://root:Password123!@127.0.0.1/sqlpage) (push) Has been skipped
CI / playwright (push) Has been skipped
CI / docker_build (linux/arm/v7, -linux-arm-v7, minimal) (push) Failing after 0s
CI / hurl_examples (push) Failing after 8s
deploy website / deploy_official_site (push) Failing after 1s
CI / hurl (${{ matrix.example }}) (push) Has been skipped
CI / docker_push (duckdb) (push) Has been cancelled
CI / docker_push (minimal) (push) Has been cancelled
CI / windows_test (push) Has been cancelled
48 lines
1.4 KiB
SQL
48 lines
1.4 KiB
SQL
-- Authentication Fence
|
|
|
|
set username = (
|
|
SELECT username
|
|
FROM sessions
|
|
WHERE sqlpage.cookie('session_token') = id
|
|
AND created_at > datetime('now', '-1 day') -- require the user to log in again after 1 day
|
|
);
|
|
|
|
SELECT
|
|
'redirect' AS component,
|
|
'/' AS link -- redirect to the front page if the user is logged in
|
|
WHERE $username IS NOT NULL;
|
|
|
|
-- =============================================================================
|
|
|
|
SELECT
|
|
'shell' AS component,
|
|
'CRUD with Authentication' AS title,
|
|
'database' AS icon;
|
|
|
|
-- =============================================================================
|
|
-- ================================= Login =====================================
|
|
-- =============================================================================
|
|
|
|
SELECT
|
|
'form' AS component,
|
|
'Login' AS title,
|
|
'create_session.sql' || ifnull('?path=' || $path, '') AS action;
|
|
|
|
-- Define form fields
|
|
|
|
SELECT
|
|
column1 AS name, column2 AS label,
|
|
column3 AS type, column4 AS required
|
|
FROM (VALUES
|
|
('username', 'Username', 'text', TRUE),
|
|
('password', 'Password', 'password', TRUE)
|
|
);
|
|
|
|
-- Show alert on failed authentication.
|
|
|
|
SELECT
|
|
'alert' AS component,
|
|
'danger' AS color,
|
|
'You are not logged in' AS title,
|
|
'Sorry, we could not log you in. Please try again.' AS description
|
|
WHERE $error IS NOT NULL; |