From 8231bda18b8785b555cc560a4058eecbdb2770fc Mon Sep 17 00:00:00 2001 From: Settel Date: Sun, 1 Aug 2021 15:56:53 +0200 Subject: [PATCH] users --- server/src/knyt.go | 8 ++++++++ server/src/user/struct.go | 13 +++++++++++++ server/src/user/user.go | 21 +++++++++++++++++++++ server/src/users/struct.go | 7 ------- server/src/users/users.go | 21 ++++++++++++++++----- 5 files changed, 58 insertions(+), 12 deletions(-) create mode 100644 server/src/user/struct.go create mode 100644 server/src/user/user.go delete mode 100644 server/src/users/struct.go diff --git a/server/src/knyt.go b/server/src/knyt.go index 783279b..db86d24 100644 --- a/server/src/knyt.go +++ b/server/src/knyt.go @@ -6,6 +6,8 @@ import ( "sirlab.de/go/knyt/app" "sirlab.de/go/knyt/engine" "sirlab.de/go/knyt/handler" + "sirlab.de/go/knyt/user" + "sirlab.de/go/knyt/users" ) func main() { @@ -15,6 +17,12 @@ func main() { App.Eng = engine.NewEngine() http.Handle("/", App.Mux) + usrs := users.NewUsers() + u1 := user.NewUser("123", "Volkmar", user.ROLE_PLAYER) + u2 := user.NewUser("123", "Annabell", user.ROLE_GAMEMASTER) + usrs.AddUser(u1) + usrs.AddUser(u2) + App.Mux.PublicHandleFunc("/__intern__/exit", handler.Exit) // default handler diff --git a/server/src/user/struct.go b/server/src/user/struct.go new file mode 100644 index 0000000..3e60bd3 --- /dev/null +++ b/server/src/user/struct.go @@ -0,0 +1,13 @@ +package user + +const ( + ROLE_ADMIN = "admin" + ROLE_GAMEMASTER = "gamemaster" + ROLE_PLAYER = "player" +) + +type User struct { + Id string `json:"id"` + Name string `json:"name"` + Role string `json:"role"` +} diff --git a/server/src/user/user.go b/server/src/user/user.go new file mode 100644 index 0000000..83b281b --- /dev/null +++ b/server/src/user/user.go @@ -0,0 +1,21 @@ +package user + +func NewUser(id, name, role string) *User { + return &User{ + Id: id, + Name: name, + Role: role, + } +} + +func (user *User) IsPlayer() bool { + return true +} + +func (user *User) IsGamemaster() bool { + return user.Role == ROLE_GAMEMASTER || user.Role == ROLE_ADMIN +} + +func (user *User) IsAdmin() bool { + return user.Role == ROLE_ADMIN +} diff --git a/server/src/users/struct.go b/server/src/users/struct.go deleted file mode 100644 index ddd84d1..0000000 --- a/server/src/users/struct.go +++ /dev/null @@ -1,7 +0,0 @@ -package users - -type User struct { - Id string `json:"id"` - Name string `json:"name"` - Role string `json:"role"` -} diff --git a/server/src/users/users.go b/server/src/users/users.go index c8a88df..fa76cda 100644 --- a/server/src/users/users.go +++ b/server/src/users/users.go @@ -1,8 +1,19 @@ package users -func NewUser(id, name string) *User { - return &User{ - id: id, - name: name, - } +import ( + "sirlab.de/go/knyt/user" +) + +type Users map[string]*user.User + +func NewUsers() Users { + return make(Users) +} + +func (users Users) AddUser(usr *user.User) { + users[usr.Id] = usr +} + +func (users Users) GetUserById(id string) *user.User { + return users[id] }