Skip to content

Commit 733bab7

Browse files
committed
Added owner of token for super user view
1 parent e83cf75 commit 733bab7

File tree

6 files changed

+30
-5
lines changed

6 files changed

+30
-5
lines changed

client/src/locale/en.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,8 @@
402402
createFlash: "API token has been created",
403403
submit: "Submit",
404404
required: "The description is required for an API token",
405-
userTokens: "Your personal API tokens"
405+
userTokens: "Your personal API tokens",
406+
owner: "Owner"
406407
},
407408
tooltips: {
408409
userIcon: "User {{name}} provisioned at {{createdAt}} with last activity on {{lastActivity}}",

client/src/locale/nl.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,8 @@ const nl = {
402402
createFlash: "API-token is aangemaakt",
403403
submit: "Opslaan",
404404
required: "Een omschrijving is verplicht voor een API-token",
405-
userTokens: "Je persoonlijke API-tokens"
405+
userTokens: "Je persoonlijke API-tokens",
406+
owner: "User"
406407
},
407408
tooltips: {
408409
userIcon: "Gebruiker {{name}} geprovisiond op {{createdAt}}, laatst actief op {{lastActivity}}",

client/src/tabs/Tokens.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,12 @@ export const Tokens = () => {
149149
header: I18n.t("tokens.description"),
150150
mapper: token => <span className={"cut-of-lines"}>{token.description}</span>
151151
},
152+
user.superUser ? {
153+
key: "owner",
154+
class: "owner",
155+
header: I18n.t("tokens.owner"),
156+
mapper: token => token.owner || "-"
157+
} : null,
152158
user.superUser ?
153159
{
154160
key: "superUserToken",

client/src/tabs/Tokens.scss

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,22 @@ div.mod-tokens {
77
thead {
88
th {
99
&.secret, &.hashed_token {
10-
width: 20%;
10+
width: 15%;
1111
}
1212

1313
&.description {
14-
width: 35%;
14+
width: 25%;
1515

1616
&.small {
17-
width: 25%;
17+
width: 20%;
1818
}
1919
}
2020

21+
&.owner {
22+
width: 12%;
23+
24+
}
25+
2126
&.superUserToken {
2227
width: 15%;
2328
text-align: center;

server/src/main/java/invite/model/APIToken.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ public class APIToken implements Serializable {
4040

4141
@ManyToOne(fetch = FetchType.EAGER)
4242
@JoinColumn(name = "owner_id")
43+
@JsonIgnore
4344
private User owner;
4445

4546

@@ -57,4 +58,9 @@ public APIToken(String hashedValue, String description, User owner) {
5758
this.owner = owner;
5859
this.createdAt = Instant.now();
5960
}
61+
62+
@JsonProperty
63+
public String owner() {
64+
return owner != null ? owner.getName() : null;
65+
}
6066
}

server/src/main/java/invite/repository/APITokenRepository.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import invite.model.APIToken;
44
import invite.model.User;
5+
import org.springframework.data.jpa.repository.EntityGraph;
56
import org.springframework.data.jpa.repository.JpaRepository;
67
import org.springframework.stereotype.Repository;
78

@@ -15,5 +16,10 @@ public interface APITokenRepository extends JpaRepository<APIToken, Long> {
1516

1617
List<APIToken> findByOwner(User user);
1718

19+
@EntityGraph(value = "findAll", type = EntityGraph.EntityGraphType.LOAD,
20+
attributePaths = {"owner"})
21+
@Override
22+
List<APIToken> findAll();
23+
1824
Optional<APIToken> findByHashedValue(String hashedValue);
1925
}

0 commit comments

Comments
 (0)