mirror of
https://github.com/coder/coder.git
synced 2025-07-18 14:17:22 +00:00
feat: assign users to groups returned by OIDC provider (#5965)
This commit is contained in:
60
coderd/database/queries/groupmembers.sql
Normal file
60
coderd/database/queries/groupmembers.sql
Normal file
@ -0,0 +1,60 @@
|
||||
-- name: GetGroupMembers :many
|
||||
SELECT
|
||||
users.*
|
||||
FROM
|
||||
users
|
||||
JOIN
|
||||
group_members
|
||||
ON
|
||||
users.id = group_members.user_id
|
||||
WHERE
|
||||
group_members.group_id = $1
|
||||
AND
|
||||
users.status = 'active'
|
||||
AND
|
||||
users.deleted = 'false';
|
||||
|
||||
-- InsertUserGroupsByName adds a user to all provided groups, if they exist.
|
||||
-- name: InsertUserGroupsByName :exec
|
||||
WITH groups AS (
|
||||
SELECT
|
||||
id
|
||||
FROM
|
||||
groups
|
||||
WHERE
|
||||
groups.organization_id = @organization_id AND
|
||||
groups.name = ANY(@group_names :: text [])
|
||||
)
|
||||
INSERT INTO
|
||||
group_members (user_id, group_id)
|
||||
SELECT
|
||||
@user_id,
|
||||
groups.id
|
||||
FROM
|
||||
groups;
|
||||
|
||||
-- name: DeleteGroupMembersByOrgAndUser :exec
|
||||
DELETE FROM
|
||||
group_members
|
||||
USING
|
||||
group_members AS gm
|
||||
LEFT JOIN
|
||||
groups
|
||||
ON
|
||||
groups.id = gm.group_id
|
||||
WHERE
|
||||
groups.organization_id = @organization_id AND
|
||||
gm.user_id = @user_id;
|
||||
|
||||
-- name: InsertGroupMember :exec
|
||||
INSERT INTO
|
||||
group_members (user_id, group_id)
|
||||
VALUES
|
||||
($1, $2);
|
||||
|
||||
-- name: DeleteGroupMemberFromGroup :exec
|
||||
DELETE FROM
|
||||
group_members
|
||||
WHERE
|
||||
user_id = $1 AND
|
||||
group_id = $2;
|
@ -20,22 +20,6 @@ AND
|
||||
LIMIT
|
||||
1;
|
||||
|
||||
-- name: GetGroupMembers :many
|
||||
SELECT
|
||||
users.*
|
||||
FROM
|
||||
users
|
||||
JOIN
|
||||
group_members
|
||||
ON
|
||||
users.id = group_members.user_id
|
||||
WHERE
|
||||
group_members.group_id = $1
|
||||
AND
|
||||
users.status = 'active'
|
||||
AND
|
||||
users.deleted = 'false';
|
||||
|
||||
-- name: GetGroupsByOrganizationID :many
|
||||
SELECT
|
||||
*
|
||||
@ -55,7 +39,7 @@ INSERT INTO groups (
|
||||
quota_allowance
|
||||
)
|
||||
VALUES
|
||||
( $1, $2, $3, $4, $5) RETURNING *;
|
||||
($1, $2, $3, $4, $5) RETURNING *;
|
||||
|
||||
-- We use the organization_id as the id
|
||||
-- for simplicity since all users is
|
||||
@ -67,7 +51,7 @@ INSERT INTO groups (
|
||||
organization_id
|
||||
)
|
||||
VALUES
|
||||
( sqlc.arg(organization_id), 'Everyone', sqlc.arg(organization_id)) RETURNING *;
|
||||
(sqlc.arg(organization_id), 'Everyone', sqlc.arg(organization_id)) RETURNING *;
|
||||
|
||||
-- name: UpdateGroupByID :one
|
||||
UPDATE
|
||||
@ -80,20 +64,6 @@ WHERE
|
||||
id = $4
|
||||
RETURNING *;
|
||||
|
||||
-- name: InsertGroupMember :exec
|
||||
INSERT INTO group_members (
|
||||
user_id,
|
||||
group_id
|
||||
)
|
||||
VALUES ($1, $2);
|
||||
|
||||
-- name: DeleteGroupMemberFromGroup :exec
|
||||
DELETE FROM
|
||||
group_members
|
||||
WHERE
|
||||
user_id = $1 AND
|
||||
group_id = $2;
|
||||
|
||||
-- name: DeleteGroupByID :exec
|
||||
DELETE FROM
|
||||
groups
|
||||
|
Reference in New Issue
Block a user