Skip to content

Commit de94a48

Browse files
committed
Add CoturnServer
1 parent a66a7f1 commit de94a48

3 files changed

Lines changed: 88 additions & 1 deletion

File tree

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package com.faforever.api.data.domain;
2+
3+
import com.faforever.api.data.checks.Prefab;
4+
import com.faforever.api.security.elide.permission.LobbyCheck;
5+
import com.yahoo.elide.annotation.Include;
6+
import com.yahoo.elide.annotation.ReadPermission;
7+
import com.yahoo.elide.annotation.UpdatePermission;
8+
import lombok.Setter;
9+
10+
import javax.persistence.Column;
11+
import javax.persistence.Entity;
12+
import javax.persistence.GeneratedValue;
13+
import javax.persistence.GenerationType;
14+
import javax.persistence.Id;
15+
import javax.persistence.Table;
16+
17+
@Entity
18+
@Table(name = "coturn_servers")
19+
@Include(name = CoturnServer.TYPE_NAME)
20+
@ReadPermission(expression = LobbyCheck.EXPRESSION)
21+
@UpdatePermission(expression = Prefab.NONE)
22+
@Setter
23+
public class CoturnServer {
24+
public static final String TYPE_NAME = "coturnServer";
25+
26+
private Integer id;
27+
private String region;
28+
private String host;
29+
private Integer port;
30+
private String key;
31+
private boolean active;
32+
33+
@Id
34+
@GeneratedValue(strategy = GenerationType.IDENTITY)
35+
@Column(name = "id")
36+
public Integer getId() {
37+
return id;
38+
}
39+
40+
@Column(name = "region")
41+
public String getRegion() {
42+
return region;
43+
}
44+
45+
@Column(name = "host")
46+
public String getHost() {
47+
return host;
48+
}
49+
50+
@Column(name = "port")
51+
public Integer getPort() {
52+
return port;
53+
}
54+
55+
@Column(name = "preshared_key")
56+
public String getKey() {
57+
return key;
58+
}
59+
60+
@Column(name = "active")
61+
public boolean isActive() {
62+
return active;
63+
}
64+
}

src/main/java/com/faforever/api/security/OAuthScope.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ public enum OAuthScope {
1616
VOTE(OAuthScope._VOTE, "Vote"),
1717
READ_SENSIBLE_USERDATA(OAuthScope._READ_SENSIBLE_USERDATA, "View sensible user data (email addresses, ip addresses, etc.)"),
1818
ADMINISTRATIVE_ACTION(OAuthScope._ADMINISTRATIVE_ACTION, "Administrative actions"),
19-
MANAGE_VAULT(OAuthScope._MANAGE_VAULT, "Manage vault");
19+
MANAGE_VAULT(OAuthScope._MANAGE_VAULT, "Manage vault"),
20+
LOBBY(OAuthScope._LOBBY, "Connect to Lobby");
2021

2122
public static final String _PUBLIC_PROFILE = "public_profile";
2223
public static final String _WRITE_ACHIEVEMENTS = "write_achievements";
@@ -29,6 +30,7 @@ public enum OAuthScope {
2930
public static final String _READ_SENSIBLE_USERDATA = "read_sensible_userdata";
3031
public static final String _ADMINISTRATIVE_ACTION = "administrative_actions";
3132
public static final String _MANAGE_VAULT = "manage_vault";
33+
public static final String _LOBBY = "lobby";
3234

3335
private static final Map<String, OAuthScope> fromString;
3436

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.faforever.api.security.elide.permission;
2+
3+
import com.faforever.api.data.domain.GroupPermission;
4+
import com.faforever.api.security.OAuthScope;
5+
6+
import static com.faforever.api.security.elide.permission.LobbyCheck.EXPRESSION;
7+
8+
import com.yahoo.elide.annotation.SecurityCheck;
9+
import com.yahoo.elide.core.security.User;
10+
import lombok.extern.slf4j.Slf4j;
11+
12+
@Slf4j
13+
@SecurityCheck(EXPRESSION)
14+
public class LobbyCheck extends FafUserCheck {
15+
public static final String EXPRESSION = "Lobby";
16+
17+
@Override
18+
public boolean ok(User user) {
19+
return checkOAuthScopes(OAuthScope.LOBBY);
20+
}
21+
}

0 commit comments

Comments
 (0)