mirror of
https://github.com/coder/coder.git
synced 2026-06-04 05:28:20 +00:00
c61b64be61
* feat: add hidden enterprise cmd command to list roles This includes custom roles, and has a json ouput option for more granular permissions
51 lines
1008 B
SQL
51 lines
1008 B
SQL
-- name: CustomRoles :many
|
|
SELECT
|
|
*
|
|
FROM
|
|
custom_roles
|
|
WHERE
|
|
true
|
|
-- Lookup roles filter
|
|
AND CASE WHEN array_length(@lookup_roles :: text[], 1) > 0 THEN
|
|
-- Case insensitive
|
|
name ILIKE ANY(@lookup_roles :: text [])
|
|
ELSE true
|
|
END
|
|
-- Org scoping filter, to only fetch site wide roles
|
|
AND CASE WHEN @exclude_org_roles :: boolean THEN
|
|
organization_id IS null
|
|
ELSE true
|
|
END
|
|
;
|
|
|
|
-- name: UpsertCustomRole :one
|
|
INSERT INTO
|
|
custom_roles (
|
|
name,
|
|
display_name,
|
|
site_permissions,
|
|
org_permissions,
|
|
user_permissions,
|
|
created_at,
|
|
updated_at
|
|
)
|
|
VALUES (
|
|
-- Always force lowercase names
|
|
lower(@name),
|
|
@display_name,
|
|
@site_permissions,
|
|
@org_permissions,
|
|
@user_permissions,
|
|
now(),
|
|
now()
|
|
)
|
|
ON CONFLICT (name)
|
|
DO UPDATE SET
|
|
display_name = @display_name,
|
|
site_permissions = @site_permissions,
|
|
org_permissions = @org_permissions,
|
|
user_permissions = @user_permissions,
|
|
updated_at = now()
|
|
RETURNING *
|
|
;
|