Skip to content

Commit 65e7bfd

Browse files
committed
feature: streamer role
1 parent 9493596 commit 65e7bfd

9 files changed

Lines changed: 84 additions & 3 deletions

File tree

generated/schema.graphql

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2815,6 +2815,9 @@ enum e_player_roles_enum {
28152815
"""Ability Manage Matches and bypass restrictions"""
28162816
match_organizer
28172817

2818+
"""Streamer"""
2819+
streamer
2820+
28182821
"""Ability Create and Manage Tournaments"""
28192822
tournament_organizer
28202823

generated/schema.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -974,7 +974,7 @@ export interface e_player_roles_aggregate_fields {
974974
/** unique or primary key constraints on table "e_player_roles" */
975975
export type e_player_roles_constraint = 'e_player_roles_pkey'
976976

977-
export type e_player_roles_enum = 'administrator' | 'match_organizer' | 'tournament_organizer' | 'user' | 'verified_user'
977+
export type e_player_roles_enum = 'administrator' | 'match_organizer' | 'streamer' | 'tournament_organizer' | 'user' | 'verified_user'
978978

979979

980980
/** aggregate max on columns */
@@ -41839,6 +41839,7 @@ export const enumEPlayerRolesConstraint = {
4183941839
export const enumEPlayerRolesEnum = {
4184041840
administrator: 'administrator' as const,
4184141841
match_organizer: 'match_organizer' as const,
41842+
streamer: 'streamer' as const,
4184241843
tournament_organizer: 'tournament_organizer' as const,
4184341844
user: 'user' as const,
4184441845
verified_user: 'verified_user' as const

hasura/enums/player-roles.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
insert into e_player_roles ("value", "description") values
22
('user', 'Basic User'),
33
('verified_user', 'Verified User'),
4+
('streamer', 'Streamer'),
45
('match_organizer', 'Ability Manage Matches and bypass restrictions'),
56
('tournament_organizer', 'Ability Create and Manage Tournaments'),
67
('administrator', 'Administrator')

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

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,7 @@ insert_permissions:
322322
_in:
323323
- user
324324
- verified_user
325+
- streamer
325326
- match_organizer
326327
set:
327328
organizer_steam_id: x-hasura-user-id
@@ -331,6 +332,39 @@ insert_permissions:
331332
- scheduled_at
332333
- server_id
333334
comment: ""
335+
- role: streamer
336+
permission:
337+
check:
338+
_or:
339+
- _not:
340+
_exists:
341+
_table:
342+
name: settings
343+
schema: public
344+
_where:
345+
name:
346+
_eq: public.create_matches_role
347+
- _exists:
348+
_table:
349+
name: settings
350+
schema: public
351+
_where:
352+
_and:
353+
- name:
354+
_eq: public.create_matches_role
355+
- value:
356+
_in:
357+
- user
358+
- verified_user
359+
- streamer
360+
set:
361+
organizer_steam_id: x-hasura-user-id
362+
columns:
363+
- label
364+
- match_options_id
365+
- scheduled_at
366+
- server_id
367+
comment: ""
334368
- role: tournament_organizer
335369
permission:
336370
check:
@@ -355,6 +389,7 @@ insert_permissions:
355389
_in:
356390
- user
357391
- verified_user
392+
- streamer
358393
- match_organizer
359394
- tournament_organizer
360395
set:

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

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ insert_permissions:
122122
_in:
123123
- user
124124
- verified_user
125+
- streamer
125126
- match_organizer
126127
set:
127128
organizer_steam_id: x-hasura-user-id
@@ -131,6 +132,39 @@ insert_permissions:
131132
- name
132133
- start
133134
comment: ""
135+
- role: streamer
136+
permission:
137+
check:
138+
_or:
139+
- _not:
140+
_exists:
141+
_table:
142+
name: settings
143+
schema: public
144+
_where:
145+
name:
146+
_eq: public.create_tournaments_role
147+
- _exists:
148+
_table:
149+
name: settings
150+
schema: public
151+
_where:
152+
_and:
153+
- name:
154+
_eq: public.create_tournaments_role
155+
- value:
156+
_in:
157+
- user
158+
- verified_user
159+
- streamer
160+
set:
161+
organizer_steam_id: x-hasura-user-id
162+
columns:
163+
- description
164+
- match_options_id
165+
- name
166+
- start
167+
comment: ""
134168
- role: tournament_organizer
135169
permission:
136170
check:
@@ -155,6 +189,7 @@ insert_permissions:
155189
_in:
156190
- user
157191
- verified_user
192+
- streamer
158193
- match_organizer
159194
- tournament_organizer
160195
set:

hasura/metadata/inherited_roles.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@
77
role_set:
88
- verified_user
99
- user
10+
- role_name: streamer
11+
role_set:
12+
- verified_user
13+
- user
1014
- role_name: tournament_organizer
1115
role_set:
1216
- match_organizer

hasura/triggers/matches.sql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ DECLARE
1010
has_region_veto BOOLEAN;
1111
user_match_count int;
1212
BEGIN
13-
IF (current_setting('hasura.user', true)::jsonb ->> 'x-hasura-role')::text = 'user' OR (current_setting('hasura.user', true)::jsonb ->> 'x-hasura-role')::text = 'verified_user' THEN
13+
IF (current_setting('hasura.user', true)::jsonb ->> 'x-hasura-role')::text = 'user' OR (current_setting('hasura.user', true)::jsonb ->> 'x-hasura-role')::text = 'verified_user' OR (current_setting('hasura.user', true)::jsonb ->> 'x-hasura-role')::text = 'streamer' THEN
1414
SELECT COUNT(*) FROM matches
1515
WHERE organizer_steam_id = (current_setting('hasura.user', true)::jsonb ->> 'x-hasura-user-id')::bigint
1616
AND status NOT IN (

src/rcon/rcon.gateway.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ export class RconGateway {
3030
if (
3131
!client.user ||
3232
client.user.role === "user" ||
33-
client.user.role === "verified_user"
33+
client.user.role === "verified_user" ||
34+
client.user.role === "streamer"
3435
) {
3536
return;
3637
}

src/utilities/isRoleAbove.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { e_player_roles_enum } from "generated";
33
const roleOrder: e_player_roles_enum[] = [
44
"user",
55
"verified_user",
6+
"streamer",
67
"match_organizer",
78
"tournament_organizer",
89
"administrator",

0 commit comments

Comments
 (0)