@@ -55,12 +55,13 @@ public void userDataChanged(UserUpdatedEvent event) {
55
55
private Optional <Integer > getNodebbUserId (int userId ) {
56
56
URI uri = UriComponentsBuilder .fromHttpUrl (properties .getNodebb ().getBaseUrl ())
57
57
// This is not an official NodeBB api url, it's coming from our own sso plugin
58
- .pathSegment ("api" , "user" , "oauth" , String .valueOf (userId ))
58
+ .pathSegment ("api" , "v3" , "plugins" , "sso" , "user" , String .valueOf (userId ))
59
+ .queryParam ("_uid" , getAdminUserId ())
59
60
.build ()
60
61
.toUri ();
61
62
62
63
try {
63
- ResponseEntity <UserResponse > result = restTemplate .exchange (uri , HttpMethod .GET , null , UserResponse .class );
64
+ ResponseEntity <UserResponse > result = restTemplate .exchange (uri , HttpMethod .GET , buildAuthorizedRequest ( null ) , UserResponse .class );
64
65
return Optional .ofNullable (result .getBody ()).map (UserResponse ::uid );
65
66
} catch (HttpClientErrorException e ) {
66
67
if (e .getStatusCode () == HttpStatus .NOT_FOUND ) {
@@ -78,7 +79,7 @@ private void updateUsernameData(int nodebbUserId, UserUpdatedEvent event) {
78
79
.build ()
79
80
.toUri ();
80
81
81
- var usernameUpdate = new UsernameUpdate (String . valueOf ( properties . getNodebb (). getAdminUserId () ), event .getUsername ());
82
+ var usernameUpdate = new UsernameUpdate (getAdminUserId (), event .getUsername ());
82
83
restTemplate .exchange (uri , HttpMethod .PUT , buildAuthorizedRequest (usernameUpdate ), Void .class );
83
84
log .debug ("Username updated in NodeBB: {}" , event );
84
85
}
@@ -89,11 +90,15 @@ private void updateEmailData(int nodebbUserId, UserUpdatedEvent event) {
89
90
.build ()
90
91
.toUri ();
91
92
92
- var usernameUpdate = new EmailUpdate (String . valueOf ( properties . getNodebb (). getAdminUserId () ), event .getEmail (), 1 );
93
- restTemplate .exchange (uri , HttpMethod .PUT , buildAuthorizedRequest (usernameUpdate ), Void .class );
93
+ var usernameUpdate = new EmailUpdate (getAdminUserId (), event .getEmail (), 1 );
94
+ restTemplate .exchange (uri , HttpMethod .POST , buildAuthorizedRequest (usernameUpdate ), Void .class );
94
95
log .debug ("Email updated in NodeBB: {}" , event );
95
96
}
96
97
98
+ private String getAdminUserId () {
99
+ return String .valueOf (properties .getNodebb ().getAdminUserId ());
100
+ }
101
+
97
102
private <T > HttpEntity <T > buildAuthorizedRequest (T payload ) {
98
103
LinkedMultiValueMap <String , String > headers = new LinkedMultiValueMap <>();
99
104
headers .add (HttpHeaders .AUTHORIZATION , "Bearer " + properties .getNodebb ().getMasterToken ());
0 commit comments