Skip to content
This repository has been archived by the owner on Sep 10, 2024. It is now read-only.

SQLPage Authentication and Authorization example

License

Notifications You must be signed in to change notification settings

mnesarco/sqlpage_auth_example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SQLPage Authentication and Authorization Example

This is a very basic example of authentication and authorization boilerplate using SQLPage. I try to avoid verbose code and duplication as much as possible.

Features

  • Login Form
  • Signup Form
  • Protected pages
  • Role based access (RBAC)
  • Resource ACL

Install

git clone https://github.com/mnesarco/sqlpage_auth_example.git
cd sqlpage_auth_example
docker compose up

After docker services are up and runnig, Go to http://localhost:8087

Demo users

  • user has basic access
  • user2 has manager access
  • admin has full access

Password of all users is the same: demo

Authorization concept

There are users and resources in the system. They are related through roles and access control lists (ACL)

roles can be granted or revoked from users. Each role has a level access to a resource pattern.

ER

You can check if the current session (logged in user) has access to a specific resource with a certain authorization level:

-- Check if current user has access to products resource with a minimum level of 30

SELECT ...
WHERE x_resource_access(sqlpage.cookie('session'), 'products', level);

You can also check if a user has some role:

-- Check if current user has admin or manager roles

SELECT ...
WHERE x_role_access(sqlpage.cookie('session'), 'admin', 'manager');

Disclaimer

This is an example of a possible solution using the existing version of SQLPage=0.17.1 Use at your own risk.

About

SQLPage Authentication and Authorization example

Topics

Resources

License

Stars

Watchers

Forks