diff options
Diffstat (limited to 'src/Client.hx')
| -rw-r--r-- | src/Client.hx | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/Client.hx b/src/Client.hx index ae35ef4..64d7e54 100644 --- a/src/Client.hx +++ b/src/Client.hx @@ -1,10 +1,12 @@ package; +import Types.Permission; +import Types.Permissions; +import haxe.EnumFlags; #if nodejs import js.node.http.IncomingMessage; import js.npm.ws.WebSocket; #end -import haxe.EnumFlags; enum ClientGroup { Banned; @@ -47,6 +49,15 @@ class Client { } #end + public function hasPermission(permission:Permission, permissions:Permissions):Bool { + final p = permissions; + if (isBanned) return p.banned.contains(permission); + if (isAdmin) return p.admin.contains(permission); + if (isLeader) return p.leader.contains(permission); + if (isUser) return p.user.contains(permission); + return p.guest.contains(permission); + } + inline function get_isBanned():Bool { return group.has(Banned); } |
