mirror of
https://github.com/abhinavxd/libredesk.git
synced 2025-11-03 13:33:32 +00:00
- feat: adds csrf token check - feat: adds conversation sub and unsub for WS updates. - Clean up and remove unncessary code - refactor and simplify auth middlewares - fix: automation rules - Update schema.sql
77 lines
1.8 KiB
SQL
77 lines
1.8 KiB
SQL
-- name: get-users
|
|
SELECT u.id, u.updated_at, u.first_name, u.last_name, u.email, u.disabled
|
|
FROM users u where u.email != 'System'
|
|
ORDER BY u.updated_at DESC;
|
|
|
|
-- name: get-users-compact
|
|
SELECT u.id, u.first_name, u.last_name, u.disabled
|
|
FROM users u where u.email != 'System'
|
|
ORDER BY u.updated_at DESC;
|
|
|
|
-- name: get-email
|
|
SELECT email from users where id = $1;
|
|
|
|
-- name: get-user-by-email
|
|
SELECT u.id, u.email, u.password, u.avatar_url, u.first_name, u.last_name, r.permissions
|
|
FROM users u
|
|
JOIN roles r ON r.name = ANY(u.roles)
|
|
WHERE u.email = $1;
|
|
|
|
-- name: get-user
|
|
SELECT
|
|
u.id,
|
|
u.email,
|
|
u.avatar_url,
|
|
u.first_name,
|
|
u.last_name,
|
|
u.roles,
|
|
COALESCE(
|
|
(SELECT json_agg(json_build_object('id', t.id, 'name', t.name))
|
|
FROM team_members tm
|
|
JOIN teams t ON tm.team_id = t.id
|
|
WHERE tm.user_id = u.id),
|
|
'[]'
|
|
) AS teams,
|
|
COALESCE(
|
|
ARRAY(
|
|
SELECT DISTINCT unnest(r.permissions)
|
|
FROM roles r
|
|
WHERE r.name = ANY(u.roles)
|
|
),
|
|
ARRAY[]::text[]
|
|
) AS permissions
|
|
FROM
|
|
users u
|
|
WHERE
|
|
u.id = $1;
|
|
|
|
|
|
-- name: set-user-password
|
|
update users set password = $1, updated_at = now() where id = $2;
|
|
|
|
-- name: create-user
|
|
INSERT INTO users
|
|
(email, first_name, last_name, "password", avatar_url, roles)
|
|
VALUES($1, $2, $3, $4, $5, $6)
|
|
RETURNING id;
|
|
|
|
-- name: update-user
|
|
UPDATE users
|
|
SET first_name = COALESCE($2, first_name),
|
|
last_name = COALESCE($3, last_name),
|
|
email = COALESCE($4, email),
|
|
roles = COALESCE($5, roles),
|
|
avatar_url = COALESCE($6, avatar_url),
|
|
password = COALESCE($7, password),
|
|
updated_at = now()
|
|
WHERE id = $1
|
|
|
|
-- name: update-avatar
|
|
UPDATE users
|
|
SET avatar_url = $2 WHERE id = $1;
|
|
|
|
-- name: get-permissions
|
|
SELECT unnest(r.permissions)
|
|
FROM users u
|
|
JOIN roles r ON r.name = ANY(u.roles)
|
|
WHERE u.id = $1 |