Skip to content

Commit a238417

Browse files
authored
Merge pull request #1178 from amvanbaren/use-agreement-after-signing
Use publisher agreement after signing
2 parents 0ba03c7 + 4e177d2 commit a238417

File tree

2 files changed

+37
-20
lines changed

2 files changed

+37
-20
lines changed

server/src/main/java/org/eclipse/openvsx/UserAPI.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -346,8 +346,15 @@ public ResponseEntity<UserJson> signPublisherAgreement() {
346346
return new ResponseEntity<>(HttpStatus.FORBIDDEN);
347347
}
348348
try {
349-
eclipse.signPublisherAgreement(user);
350-
return ResponseEntity.ok(getUserData());
349+
var agreement = eclipse.signPublisherAgreement(user);
350+
var json = user.toUserJson();
351+
var serverUrl = UrlUtil.getBaseUrl();
352+
json.setRole(user.getRole());
353+
json.setTokensUrl(createApiUrl(serverUrl, "user", "tokens"));
354+
json.setCreateTokenUrl(createApiUrl(serverUrl, "user", "token", "create"));
355+
eclipse.enrichUserJson(json, user, agreement);
356+
357+
return ResponseEntity.ok(json);
351358
} catch (ErrorResultException exc) {
352359
return exc.toResponseEntity(UserJson.class);
353360
}

server/src/main/java/org/eclipse/openvsx/eclipse/EclipseService.java

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -158,10 +158,31 @@ public void updateUserData(UserData user, EclipseProfile profile) {
158158
user.setEclipsePersonId(profile.getName());
159159
}
160160

161+
public void enrichUserJson(UserJson json, UserData user) {
162+
var usableToken = true;
163+
PublisherAgreement agreement = null;
164+
try {
165+
// Add information on the publisher agreement
166+
agreement = getPublisherAgreement(user);
167+
} catch (ErrorResultException e) {
168+
if(e.getStatus() == HttpStatus.FORBIDDEN) {
169+
usableToken = false;
170+
} else {
171+
logger.info("Failed to enrich UserJson", e);
172+
}
173+
}
174+
175+
enrichUserJson(json, user, agreement, usableToken);
176+
}
177+
178+
public void enrichUserJson(UserJson json, UserData user, PublisherAgreement agreement) {
179+
enrichUserJson(json, user, agreement, true);
180+
}
181+
161182
/**
162183
* Enrich the given JSON user data with Eclipse-specific information.
163184
*/
164-
public void enrichUserJson(UserJson json, UserData user) {
185+
private void enrichUserJson(UserJson json, UserData user, PublisherAgreement agreement, boolean usableToken) {
165186
if (!isActive()) {
166187
return;
167188
}
@@ -175,23 +196,12 @@ public void enrichUserJson(UserJson json, UserData user) {
175196
return;
176197
}
177198

178-
var usableToken = true;
179-
try {
180-
// Add information on the publisher agreement
181-
var agreement = getPublisherAgreement(user);
182-
if(agreement != null && agreement.isActive() && agreement.version() != null) {
183-
var status = publisherAgreementVersion.equals(agreement.version()) ? "signed" : "outdated";
184-
publisherAgreement.setStatus(status);
185-
}
186-
if (agreement != null && agreement.timestamp() != null) {
187-
publisherAgreement.setTimestamp(TimeUtil.toUTCString(agreement.timestamp()));
188-
}
189-
} catch (ErrorResultException e) {
190-
if(e.getStatus() == HttpStatus.FORBIDDEN) {
191-
usableToken = false;
192-
} else {
193-
logger.info("Failed to enrich UserJson", e);
194-
}
199+
if(agreement != null && agreement.isActive() && agreement.version() != null) {
200+
var status = publisherAgreementVersion.equals(agreement.version()) ? "signed" : "outdated";
201+
publisherAgreement.setStatus(status);
202+
}
203+
if (agreement != null && agreement.timestamp() != null) {
204+
publisherAgreement.setTimestamp(TimeUtil.toUTCString(agreement.timestamp()));
195205
}
196206

197207
// Report user as logged in only if there is a usable token:

0 commit comments

Comments
 (0)