From c51a4c072a191618b5cc0b8e18add16247c99be6 Mon Sep 17 00:00:00 2001 From: Brutus5000 Date: Mon, 23 Sep 2019 04:21:40 +0200 Subject: [PATCH 1/5] Implement user permission system (fixes #271) --- .idea/runConfigurations/FafApiApplication.xml | 9 - .../api/AbstractIntegrationTest.java | 20 +- .../api/avatar/AvatarControllerTest.java | 53 ++-- ...st.java => AvatarAssignmentElideTest.java} | 116 +++++--- .../java/com/faforever/api/data/BanTest.java | 131 ++++----- .../api/data/DomainBlacklistTest.java | 134 +++++++-- .../faforever/api/data/Ladder1v1MapTest.java | 43 ++- .../com/faforever/api/data/TeamkillTest.java | 48 ++- .../faforever/api/data/TutorialElideTest.java | 111 +++++-- .../com/faforever/api/data/UserNoteTest.java | 76 +++-- .../faforever/api/data/VotingElideTest.java | 128 +++++--- .../api/event/EventControllerTest.java | 12 +- .../ModerationReportTest.java | 274 ++++++++++-------- .../api/user/UsersControllerTest.java | 34 ++- .../com/faforever/api/utils/OAuthHelper.java | 36 ++- src/inttest/resources/sql/prepAvatarData.sql | 25 +- src/inttest/resources/sql/prepBanData.sql | 8 +- src/inttest/resources/sql/prepDefaultUser.sql | 14 +- .../sql/prepModerationReportData.sql | 6 +- .../resources/sql/prepUserNoteData.sql | 3 - .../api/avatar/AvatarController.java | 8 +- .../api/config/elide/ElideConfig.java | 29 +- .../faforever/api/data/DataController.java | 13 +- .../api/data/checks/UserGroupPublicCheck.java | 24 ++ .../data/checks/permission/HasBanRead.java | 11 - .../data/checks/permission/HasBanUpdate.java | 11 - .../checks/permission/HasLadder1v1Update.java | 13 - .../com/faforever/api/data/domain/Avatar.java | 7 +- .../api/data/domain/AvatarAssignment.java | 13 +- .../faforever/api/data/domain/BanInfo.java | 12 +- .../api/data/domain/DomainBlacklist.java | 10 +- .../api/data/domain/GroupPermission.java | 86 ++++++ .../api/data/domain/Ladder1v1Map.java | 8 +- .../com/faforever/api/data/domain/Login.java | 20 +- .../api/data/domain/ModerationReport.java | 18 +- .../faforever/api/data/domain/Teamkill.java | 4 +- .../faforever/api/data/domain/Tutorial.java | 11 +- .../api/data/domain/TutorialCategory.java | 11 +- .../com/faforever/api/data/domain/User.java | 3 +- .../faforever/api/data/domain/UserGroup.java | 82 ++++++ .../faforever/api/data/domain/UserNote.java | 11 +- .../com/faforever/api/data/domain/Vote.java | 3 +- .../api/data/domain/VotingAnswer.java | 3 +- .../api/data/domain/VotingChoice.java | 11 +- .../api/data/domain/VotingQuestion.java | 16 +- .../api/data/domain/VotingSubject.java | 11 +- .../FafUserAuthenticationConverter.java | 10 +- .../api/security/FafUserDetails.java | 17 +- .../api/security/FafUserDetailsService.java | 31 +- .../faforever/api/security/OAuthScope.java | 11 +- .../com/faforever/api/security/UserRole.java | 37 +++ .../permission/AdminAccountBanCheck.java | 17 ++ .../permission/AdminAccountNoteCheck.java | 17 ++ .../elide/permission/AdminMapCheck.java | 17 ++ .../elide/permission/AdminModCheck.java | 17 ++ .../AdminModerationReportCheck.java | 17 ++ .../elide/permission/AdminVoteCheck.java | 17 ++ .../elide/permission/FafUserCheck.java | 81 ++++++ .../ReadAccountPrivateDetailsCheck.java | 17 ++ .../permission/ReadTeamkillReportCheck.java | 17 ++ .../elide/permission/ReadUserGroupCheck.java | 17 ++ .../elide/permission/WriteAvatarCheck.java | 16 + .../permission/WriteEmailDomainBanCheck.java | 16 + .../permission/WriteMatchmakerMapCheck.java | 16 + .../permission/WriteMatchmakerPoolCheck.java | 16 + .../elide/permission/WriteMessageCheck.java | 16 + .../elide/permission/WriteNewsPostCheck.java | 16 + .../elide/permission/WriteTutorialCheck.java | 16 + .../elide/permission/WriteUserGroupCheck.java | 17 ++ 69 files changed, 1578 insertions(+), 621 deletions(-) rename src/inttest/java/com/faforever/api/data/{AvatarElideTest.java => AvatarAssignmentElideTest.java} (59%) create mode 100644 src/main/java/com/faforever/api/data/checks/UserGroupPublicCheck.java delete mode 100644 src/main/java/com/faforever/api/data/checks/permission/HasBanRead.java delete mode 100644 src/main/java/com/faforever/api/data/checks/permission/HasBanUpdate.java delete mode 100644 src/main/java/com/faforever/api/data/checks/permission/HasLadder1v1Update.java create mode 100644 src/main/java/com/faforever/api/data/domain/GroupPermission.java create mode 100644 src/main/java/com/faforever/api/data/domain/UserGroup.java create mode 100644 src/main/java/com/faforever/api/security/UserRole.java create mode 100644 src/main/java/com/faforever/api/security/elide/permission/AdminAccountBanCheck.java create mode 100644 src/main/java/com/faforever/api/security/elide/permission/AdminAccountNoteCheck.java create mode 100644 src/main/java/com/faforever/api/security/elide/permission/AdminMapCheck.java create mode 100644 src/main/java/com/faforever/api/security/elide/permission/AdminModCheck.java create mode 100644 src/main/java/com/faforever/api/security/elide/permission/AdminModerationReportCheck.java create mode 100644 src/main/java/com/faforever/api/security/elide/permission/AdminVoteCheck.java create mode 100644 src/main/java/com/faforever/api/security/elide/permission/FafUserCheck.java create mode 100644 src/main/java/com/faforever/api/security/elide/permission/ReadAccountPrivateDetailsCheck.java create mode 100644 src/main/java/com/faforever/api/security/elide/permission/ReadTeamkillReportCheck.java create mode 100644 src/main/java/com/faforever/api/security/elide/permission/ReadUserGroupCheck.java create mode 100644 src/main/java/com/faforever/api/security/elide/permission/WriteAvatarCheck.java create mode 100644 src/main/java/com/faforever/api/security/elide/permission/WriteEmailDomainBanCheck.java create mode 100644 src/main/java/com/faforever/api/security/elide/permission/WriteMatchmakerMapCheck.java create mode 100644 src/main/java/com/faforever/api/security/elide/permission/WriteMatchmakerPoolCheck.java create mode 100644 src/main/java/com/faforever/api/security/elide/permission/WriteMessageCheck.java create mode 100644 src/main/java/com/faforever/api/security/elide/permission/WriteNewsPostCheck.java create mode 100644 src/main/java/com/faforever/api/security/elide/permission/WriteTutorialCheck.java create mode 100644 src/main/java/com/faforever/api/security/elide/permission/WriteUserGroupCheck.java diff --git a/.idea/runConfigurations/FafApiApplication.xml b/.idea/runConfigurations/FafApiApplication.xml index c4595cae7..6e564d6b5 100644 --- a/.idea/runConfigurations/FafApiApplication.xml +++ b/.idea/runConfigurations/FafApiApplication.xml @@ -8,17 +8,8 @@