mirror of
https://github.com/GravitLauncher/Launcher
synced 2024-12-25 01:51:00 +03:00
111 lines
2.6 KiB
Java
111 lines
2.6 KiB
Java
package pro.gravit.launcher;
|
|
|
|
import pro.gravit.launcher.serialize.HInput;
|
|
import pro.gravit.launcher.serialize.HOutput;
|
|
|
|
import java.io.IOException;
|
|
import java.util.StringJoiner;
|
|
|
|
public class ClientPermissions {
|
|
public static final ClientPermissions DEFAULT = new ClientPermissions();
|
|
public long permissions;
|
|
public long flags;
|
|
public enum PermissionConsts
|
|
{
|
|
ADMIN(0x01),
|
|
MANAGEMENT(0x02);
|
|
public final long mask;
|
|
|
|
PermissionConsts(long mask) {
|
|
this.mask = mask;
|
|
}
|
|
}
|
|
public enum FlagConsts
|
|
{
|
|
SYSTEM(0x01),
|
|
BANNED(0x02),
|
|
UNTRUSTED(0x04),
|
|
HIDDEN(0x08);
|
|
public final long mask;
|
|
|
|
FlagConsts(long mask) {
|
|
this.mask = mask;
|
|
}
|
|
}
|
|
|
|
public ClientPermissions(HInput input) throws IOException {
|
|
this(input.readLong());
|
|
}
|
|
|
|
public ClientPermissions() {
|
|
|
|
}
|
|
|
|
public ClientPermissions(long permissions) {
|
|
this.permissions = permissions;
|
|
}
|
|
|
|
public ClientPermissions(long permissions, long flags) {
|
|
this.permissions = permissions;
|
|
this.flags = flags;
|
|
}
|
|
|
|
public long toLong() {
|
|
return permissions;
|
|
}
|
|
|
|
public static ClientPermissions getSuperuserAccount() {
|
|
ClientPermissions perm = new ClientPermissions();
|
|
return perm;
|
|
}
|
|
@Deprecated
|
|
public void write(HOutput output) throws IOException {
|
|
output.writeLong(toLong());
|
|
}
|
|
|
|
//Read methods
|
|
public final boolean isPermission(PermissionConsts con)
|
|
{
|
|
return (permissions & con.mask) != 0;
|
|
}
|
|
public final boolean isPermission(long mask)
|
|
{
|
|
return (permissions & mask) != 0;
|
|
}
|
|
public final boolean isFlag(FlagConsts con)
|
|
{
|
|
return (flags & con.mask) != 0;
|
|
}
|
|
public final boolean isFlag(long mask)
|
|
{
|
|
return (flags & mask) != 0;
|
|
}
|
|
//Write methods
|
|
public final void setPermission(PermissionConsts con, boolean value)
|
|
{
|
|
if(value) this.permissions |= con.mask;
|
|
else this.permissions &= ~con.mask;
|
|
}
|
|
public final void setPermission(long mask, boolean value)
|
|
{
|
|
if(value) this.permissions |= mask;
|
|
else this.permissions &= ~mask;
|
|
}
|
|
public final void setFlag(FlagConsts con, boolean value)
|
|
{
|
|
if(value) this.flags |= con.mask;
|
|
else this.flags &= ~con.mask;
|
|
}
|
|
public final void setFlag(long mask, boolean value)
|
|
{
|
|
if(value) this.flags |= mask;
|
|
else this.flags &= ~mask;
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
public String toString() {
|
|
return String.format("permissions %d | flags %d", permissions, flags);
|
|
}
|
|
}
|