Implement basic permission system

This commit is contained in:
KingRainbow44
2022-04-18 23:46:04 -04:00
parent 93a6914261
commit 824b3a4bf4
5 changed files with 80 additions and 14 deletions

View File

@@ -9,6 +9,8 @@ import emu.grasscutter.utils.Crypto;
import emu.grasscutter.utils.Utils;
import dev.morphia.annotations.IndexOptions;
import java.util.List;
@Entity(value = "accounts", noClassnameStored = true)
public class Account {
@Id private String id;
@@ -23,6 +25,7 @@ public class Account {
private String token;
private String sessionKey; // Session token for dispatch server
private List<String> permissions;
@Deprecated
public Account() {}
@@ -84,6 +87,22 @@ public class Account {
this.save();
return this.sessionKey;
}
/**
* The collection of a player's permissions.
*/
public List<String> getPermissions() {
return this.permissions;
}
public boolean addPermission(String permission) {
if(this.permissions.contains(permission)) return false;
this.permissions.add(permission); return true;
}
public boolean removePermission(String permission) {
return this.permissions.remove(permission);
}
// TODO make unique
public String generateLoginToken() {

View File

@@ -1,11 +1,6 @@
package emu.grasscutter.game;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.*;
import dev.morphia.annotations.*;
import emu.grasscutter.GenshinConstants;