Skip to content

Commit 7b36650

Browse files
committed
feat: add can_pause/can_resume tournament permission functions
1 parent bc78ae1 commit 7b36650

3 files changed

Lines changed: 54 additions & 0 deletions

File tree

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
CREATE OR REPLACE FUNCTION public.can_pause_tournament(
2+
tournament public.tournaments,
3+
hasura_session json
4+
)
5+
RETURNS boolean
6+
LANGUAGE plpgsql STABLE
7+
AS $$
8+
BEGIN
9+
IF tournament.status != 'Live' THEN
10+
RETURN false;
11+
END IF;
12+
13+
IF hasura_session ->> 'x-hasura-role' = 'admin' OR hasura_session ->> 'x-hasura-role' = 'administrator' OR hasura_session ->> 'x-hasura-role' = 'tournament_organizer' THEN
14+
RETURN true;
15+
END IF;
16+
17+
RETURN is_tournament_organizer(tournament, hasura_session);
18+
END;
19+
$$;
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
CREATE OR REPLACE FUNCTION public.can_resume_tournament(
2+
tournament public.tournaments,
3+
hasura_session json
4+
)
5+
RETURNS boolean
6+
LANGUAGE plpgsql STABLE
7+
AS $$
8+
BEGIN
9+
IF tournament.status != 'Paused' THEN
10+
RETURN false;
11+
END IF;
12+
13+
IF hasura_session ->> 'x-hasura-role' = 'admin' OR hasura_session ->> 'x-hasura-role' = 'administrator' OR hasura_session ->> 'x-hasura-role' = 'tournament_organizer' THEN
14+
RETURN true;
15+
END IF;
16+
17+
RETURN is_tournament_organizer(tournament, hasura_session);
18+
END;
19+
$$;

hasura/metadata/databases/default/tables/public_tournaments.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,18 @@ computed_fields:
6262
name: can_close_tournament_registration
6363
schema: public
6464
session_argument: hasura_session
65+
- name: can_pause
66+
definition:
67+
function:
68+
name: can_pause_tournament
69+
schema: public
70+
session_argument: hasura_session
71+
- name: can_resume
72+
definition:
73+
function:
74+
name: can_resume_tournament
75+
schema: public
76+
session_argument: hasura_session
6577
- name: can_join
6678
definition:
6779
function:
@@ -385,6 +397,8 @@ select_permissions:
385397
- can_close_registration
386398
- can_join
387399
- can_open_registration
400+
- can_pause
401+
- can_resume
388402
- can_start
389403
- has_min_teams
390404
- is_organizer
@@ -426,6 +440,8 @@ select_permissions:
426440
- can_close_registration
427441
- can_join
428442
- can_open_registration
443+
- can_pause
444+
- can_resume
429445
- can_start
430446
- has_min_teams
431447
- is_organizer

0 commit comments

Comments
 (0)