Skip to content

Commit 22b8540

Browse files
committed
Add FAF organization as public groups, roles and assign them
1 parent 05c2756 commit 22b8540

File tree

2 files changed

+131
-7
lines changed

2 files changed

+131
-7
lines changed
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
-- PUBLIC GROUPS --
2+
INSERT INTO user_group (technical_name, name_key, public) VALUES ('faf_organisation', 'user_group.faf.organisation', 1);
3+
4+
SET @root_id = (SELECT id from user_group WHERE technical_name = 'faf_organisation');
5+
6+
-- The council
7+
8+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_councilor_administration', 'user_group.faf.councilor.administration', 1, @root_id);
9+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_councilor_balance', 'user_group.faf.councilor.balance', 1, @root_id);
10+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_councilor_devops', 'user_group.faf.councilor.devops', 1, @root_id);
11+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_councilor_game', 'user_group.faf.councilor.game', 1, @root_id);
12+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_councilor_maps_mods', 'user_group.faf.councilor.maps_mods', 1, @root_id);
13+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_councilor_moderation', 'user_group.faf.councilor.moderation', 1, @root_id);
14+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_councilor_player', 'user_group.faf.councilor.player', 1, @root_id);
15+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_councilor_promotion', 'user_group.faf.councilor.promotion', 1, @root_id);
16+
17+
-- Balance councilor subgroups
18+
SET @balance_id = (SELECT id from user_group WHERE technical_name = 'faf_councilor_balance');
19+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_balance_team', 'user_group.faf.balance_team', 1, @balance_id);
20+
21+
-- DevOps councilor subgroups
22+
SET @devops_id = (SELECT id from user_group WHERE technical_name = 'faf_councilor_devops');
23+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_server_administrators', 'user_group.faf.server_administrators', 1, @devops_id);
24+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_devs_java_client', 'user_group.devs.java_client', 1, @devops_id);
25+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_devs_java_api', 'user_group.faf.devs.java_api', 1, @devops_id);
26+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_devs_java_lobby_server', 'user_group.faf.devs.java_server', 1, @devops_id);
27+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_devs_java_ice_adapter', 'user_group.faf.devs.java.ice_adapter', 1, @devops_id);
28+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_devs_python_client', 'user_group.faf.devs.python_client', 1, @devops_id);
29+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_devs_python_lobby_server', 'user_group.faf.devs.python_lobby_server', 1, @devops_id);
30+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_devs_python_replay_server', 'user_group.faf.devs.python_replay_server', 1, @devops_id);
31+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_devs_website', 'user_group.faf.devs.website', 1, @devops_id);
32+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_devs_unitdb', 'user_group.faf.devs.unitdb', 1, @devops_id);
33+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_devs_galactic_war', 'user_group.faf.devs.galactic_war', 1, @devops_id);
34+
35+
-- Game councilor subgroups
36+
SET @game_id = (SELECT id from user_group WHERE technical_name = 'faf_councilor_game');
37+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_devs_game_lua', 'user_group.faf.devs.game_lua', 1, @game_id);
38+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_devs_game_exe', 'user_group.faf.devs.game_exe', 1, @game_id);
39+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_devs_game_coop', 'user_group.faf.devs.game_coop', 1, @game_id);
40+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_testers_game_exe', 'user_group.faf.testers.game_exe', 1, @game_id);
41+
42+
-- Maps & Mods councilor subgroups
43+
SET @mm_id = (SELECT id from user_group WHERE technical_name = 'faf_councilor_maps_mods');
44+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_mapper', 'user_group.faf.mapper', 1, @mm_id);
45+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_modder', 'user_group.faf.modder', 1, @mm_id);
46+
47+
-- Moderation councilor subgroups
48+
SET @mod_id = (SELECT id from user_group WHERE technical_name = 'faf_councilor_moderation');
49+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_moderators_global', 'user_group.faf.moderators.global', 1, @mod_id);
50+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_moderators_discord', 'user_group.faf.moderators.discord', 1, @mod_id);
51+
52+
-- Player councilor subgroups
53+
SET @pc_id = (SELECT id from user_group WHERE technical_name = 'faf_councilor_player');
54+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_tournament_directors', 'user_group.faf.tournament_directors', 1, @pc_id);
55+
56+
-- Promotion councilor subgroups
57+
SET @promo_id = (SELECT id from user_group WHERE technical_name = 'faf_councilor_promotion');
58+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_casters', 'user_group.faf.casters', 1, @promo_id);
59+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_streamer', 'user_group.faf.streamers', 1, @promo_id);
60+
INSERT INTO user_group (technical_name, name_key, public, parent_group_id) VALUES ('faf_wiki_editors', 'user_group.faf.wiki_editors', 1, @promo_id);
61+
62+
63+
-- ROLES --
64+
INSERT INTO group_permission (technical_name, name_key) VALUES('READ_AUDIT_LOG', 'permission_group.read_audit_log');
65+
INSERT INTO group_permission (technical_name, name_key) VALUES('READ_TEAMKILL_REPORT', 'permission_group.read_teamkill_report');
66+
INSERT INTO group_permission (technical_name, name_key) VALUES('READ_ACCOUNT_PRIVATE_DETAILS', 'permission_group.read_account_private_details');
67+
INSERT INTO group_permission (technical_name, name_key) VALUES('ADMIN_ACCOUNT_NOTE', 'permission_group.admin_account_note');
68+
INSERT INTO group_permission (technical_name, name_key) VALUES('ADMIN_MODERATION_REPORT', 'permission_group.admin_moderation_report');
69+
INSERT INTO group_permission (technical_name, name_key) VALUES('ADMIN_ACCOUNT_BAN', 'permission_group.admin_account_ban');
70+
INSERT INTO group_permission (technical_name, name_key) VALUES('ADMIN_CLAN', 'permission_group.admin_clan');
71+
INSERT INTO group_permission (technical_name, name_key) VALUES('WRITE_COOP_MISSION', 'permission_group.write_coop_mission');
72+
INSERT INTO group_permission (technical_name, name_key) VALUES('WRITE_AVATAR', 'permission_group.write_avatar');
73+
INSERT INTO group_permission (technical_name, name_key) VALUES('WRITE_MATCHMAKER_POOL', 'permission_group.write_matchmaker_pool');
74+
INSERT INTO group_permission (technical_name, name_key) VALUES('WRITE_MATCHMAKER_MAP', 'permission_group.write_matchmaker_map');
75+
INSERT INTO group_permission (technical_name, name_key) VALUES('WRITE_EMAIL_DOMAIN_BAN', 'permission_group.write_email_domain_ban');
76+
INSERT INTO group_permission (technical_name, name_key) VALUES('ADMIN_VOTE', 'permission_group.admin_vote');
77+
INSERT INTO group_permission (technical_name, name_key) VALUES('WRITE_USER_GROUP', 'permission_group.write_user_group');
78+
INSERT INTO group_permission (technical_name, name_key) VALUES('READ_USER_GROUP', 'permission_group.read_user_group');
79+
INSERT INTO group_permission (technical_name, name_key) VALUES('WRITE_TUTORIAL', 'permission_group.write_tutorial');
80+
INSERT INTO group_permission (technical_name, name_key) VALUES('WRITE_NEWS_POST', 'permission_group.write_news_post');
81+
INSERT INTO group_permission (technical_name, name_key) VALUES('WRITE_OAUTH_CLIENT', 'permission_group.write_oauth_client');
82+
INSERT INTO group_permission (technical_name, name_key) VALUES('ADMIN_MAP', 'permission_group.admin_map');
83+
INSERT INTO group_permission (technical_name, name_key) VALUES('ADMIN_MOD', 'permission_group.admin_mod');
84+
INSERT INTO group_permission (technical_name, name_key) VALUES('WRITE_MESSAGE', 'permission_group.write_message');
85+
86+
87+
-- ROLE ASSIGNMENTS --
88+
89+
-- Councilor common permissions
90+
INSERT INTO group_permission_assignment (group_id, permission_id)
91+
SELECT user_group.id, group_permission.id FROM user_group, group_permission
92+
WHERE user_group.parent_group_id = @root_id
93+
AND group_permission.technical_name IN ('READ_AUDIT_LOG', 'WRITE_AVATAR', 'READ_USER_GROUP', 'WRITE_USER_GROUP', 'ADMIN_VOTE', 'WRITE_NEWS_POST', 'WRITE_MESSAGE');
94+
95+
-- Player councilor only
96+
INSERT INTO group_permission_assignment (group_id, permission_id)
97+
SELECT @pc_id, group_permission.id FROM group_permission
98+
WHERE group_permission.technical_name IN ('WRITE_MATCHMAKER_MAP', 'WRITE_TUTORIAL', 'ADMIN_CLAN');
99+
100+
-- M&M councilor only
101+
INSERT INTO group_permission_assignment (group_id, permission_id)
102+
SELECT @mm_id, group_permission.id FROM group_permission
103+
WHERE group_permission.technical_name IN ('ADMIN_MAP', 'ADMIN_MOD', 'WRITE_COOP_MISSION');
104+
105+
-- Moderation councilor + global moderators
106+
INSERT INTO group_permission_assignment (group_id, permission_id)
107+
SELECT user_group.id, group_permission.id FROM user_group, group_permission
108+
WHERE (user_group.id = @mod_id or user_group.technical_name = 'faf_moderators_global')
109+
AND group_permission.technical_name IN ('READ_TEAMKILL_REPORT', 'READ_ACCOUNT_PRIVATE_DETAILS', 'ADMIN_ACCOUNT_NOTE', 'ADMIN_MODERATION_REPORT', 'ADMIN_ACCOUNT_BAN', 'WRITE_EMAIL_DOMAIN_BAN');
110+
111+
-- Server admins
112+
INSERT INTO group_permission_assignment (group_id, permission_id)
113+
SELECT user_group.id, group_permission.id FROM user_group, group_permission
114+
WHERE user_group.technical_name = 'faf_server_administrators'
115+
AND group_permission.technical_name IN ('READ_AUDIT_LOG', 'READ_USER_GROUP', 'WRITE_USER_GROUP', 'WRITE_NEWS_POST', 'WRITE_MESSAGE');
116+
117+
-- Tournament directors
118+
INSERT INTO group_permission_assignment (group_id, permission_id)
119+
SELECT user_group.id, group_permission.id FROM user_group, group_permission
120+
WHERE user_group.technical_name = 'faf_server_administrators'
121+
AND group_permission.technical_name IN ( 'WRITE_NEWS_POST', 'WRITE_AVATAR');

test-data.sql

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
-- DUMMY DATA ONLY, FOR USE IN UNIT TESTS
22

3+
SET FOREIGN_KEY_CHECKS=0;
4+
35
DELETE FROM player_events;
46
DELETE FROM reported_user;
57
DELETE FROM moderation_report;
@@ -40,13 +42,12 @@ DELETE FROM ladder_division_score;
4042
DELETE FROM ladder_division;
4143
DELETE FROM lobby_admin;
4244
DELETE FROM name_history;
43-
DELETE FROM group_permission_assignment;
44-
DELETE FROM group_permission;
4545
DELETE FROM user_group_assignment;
46-
DELETE FROM user_group;
4746
DELETE FROM login;
4847
DELETE FROM email_domain_blacklist;
4948

49+
SET FOREIGN_KEY_CHECKS=1;
50+
5051
-- Login table
5152
-- Most accounts get a creation time in the past so that they pass account
5253
-- age check.
@@ -63,11 +64,13 @@ insert into login (id, login, email, password, ip) values (8, 'ipv6', 'ipv6@exam
6364

6465
-- Name history
6566
insert into name_history (id, change_time, user_id, previous_name) values
66-
(1, date_sub(now(), interval 12 month), 1, "test_maniac"),
67-
(2, date_sub(now(), interval 1 month), 2, "YoungDostya");
67+
(1, date_sub(now(), interval 12 month), 1, 'test_maniac'),
68+
(2, date_sub(now(), interval 1 month), 2, 'YoungDostya');
6869

6970
-- Permissions
7071
insert into lobby_admin (user_id, `group`) values (1,2);
72+
insert into user_group_assignment(user_id, group_id) values (1, (SELECT id from user_group WHERE technical_name = 'faf_server_administrators'));
73+
insert into user_group_assignment(user_id, group_id) values (2, (SELECT id from user_group WHERE technical_name = 'faf_moderators_global'));
7174

7275
-- global rating
7376
insert into global_rating (id, mean, deviation, numGames, is_active)
@@ -188,8 +191,8 @@ insert into avatars (idUser, idAvatar, selected, expires_at) values (3, 1, 0, NO
188191

189192
-- sample bans
190193
insert into ban(id, player_id, author_id, reason, level) values
191-
(1, 2, 1, 'Test permanent ban', 'GLOBAL'),
192-
(2, 3, 1, 'This test ban should be revoked', 'CHAT');
194+
(1, 3, 1, 'Test permanent ban', 'GLOBAL'),
195+
(2, 4, 1, 'This test ban should be revoked', 'CHAT');
193196
insert into ban(player_id, author_id, reason, level, expires_at) values
194197
(4, 1, 'This test ban should be expired', 'CHAT', NOW());
195198
insert into ban (player_id, author_id, reason, level, expires_at, revoke_reason, revoke_author_id, revoke_time) values

0 commit comments

Comments
 (0)