1717package org .graylog .plugins .sidecar .migrations ;
1818
1919import com .google .common .collect .ImmutableSet ;
20+ import org .graylog .plugins .sidecar .common .SidecarPluginConfiguration ;
2021import org .graylog .plugins .sidecar .permissions .SidecarRestPermissions ;
2122import org .graylog2 .migrations .Migration ;
2223import org .graylog2 .migrations .MigrationHelpers ;
2324
2425import jakarta .inject .Inject ;
26+ import org .graylog2 .shared .security .RestPermissions ;
2527
2628import java .time .ZonedDateTime ;
2729
2830public class V20230502164900_AddSidecarManagerAndReaderRole extends Migration {
2931
3032 private final MigrationHelpers helpers ;
33+ private final String sidecarUser ;
3134
3235 @ Inject
33- public V20230502164900_AddSidecarManagerAndReaderRole (MigrationHelpers migrationHelpers ) {
36+ public V20230502164900_AddSidecarManagerAndReaderRole (
37+ MigrationHelpers migrationHelpers ,
38+ SidecarPluginConfiguration sidecarPluginConfiguration
39+ ) {
3440 this .helpers = migrationHelpers ;
41+ sidecarUser = sidecarPluginConfiguration .getUser ();
3542 }
3643
3744 @ Override
@@ -45,6 +52,11 @@ public void upgrade() {
4552 "Sidecar Manager" ,
4653 "Grants access to read, register and pull configurations for Sidecars (built-in)" ,
4754 ImmutableSet .of (
55+ permissionForUser (RestPermissions .USERS_READ , sidecarUser ),
56+ permissionForUser (RestPermissions .USERS_EDIT , sidecarUser ),
57+ permissionForUser (RestPermissions .USERS_TOKENCREATE , sidecarUser ),
58+ permissionForUser (RestPermissions .USERS_TOKENLIST , sidecarUser ),
59+ permissionForUser (RestPermissions .USERS_TOKENREMOVE , sidecarUser ),
4860 SidecarRestPermissions .COLLECTORS_READ ,
4961 SidecarRestPermissions .COLLECTORS_CREATE ,
5062 SidecarRestPermissions .COLLECTORS_UPDATE ,
@@ -66,4 +78,8 @@ public void upgrade() {
6678 SidecarRestPermissions .SIDECARS_READ ));
6779
6880 }
81+
82+ private String permissionForUser (String permission , String user ) {
83+ return permission + ":" + user ;
84+ }
6985}
0 commit comments