From 58d0d9afd286afd715e9f04825e1305045d404e2 Mon Sep 17 00:00:00 2001 From: =Corey Hulen Date: Fri, 4 Sep 2015 11:59:10 -0700 Subject: Adding cmd line options --- model/user.go | 47 ++++++++++++++++++++++++++++++++++++++++++++++- model/user_test.go | 10 ++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) (limited to 'model') diff --git a/model/user.go b/model/user.go index d82f96db3..9cec37ac6 100644 --- a/model/user.go +++ b/model/user.go @@ -15,7 +15,6 @@ import ( const ( ROLE_ADMIN = "admin" ROLE_SYSTEM_ADMIN = "system_admin" - ROLE_SYSTEM_SUPPORT = "system_support" USER_AWAY_TIMEOUT = 5 * 60 * 1000 // 5 minutes USER_OFFLINE_TIMEOUT = 1 * 60 * 1000 // 1 minute USER_OFFLINE = "offline" @@ -272,6 +271,52 @@ func (u *User) GetDisplayName() string { } } +func IsValidRoles(userRoles string) bool { + + roles := strings.Split(userRoles, " ") + + for _, r := range roles { + if !isValidRole(r) { + return false + } + } + + return true +} + +func isValidRole(role string) bool { + if role == "" { + return true + } + + if role == ROLE_ADMIN { + return true + } + + if role == ROLE_SYSTEM_ADMIN { + return true + } + + return false +} + +func (u *User) IsInRole(inRole string) bool { + return IsInRole(u.Roles, inRole) +} + +func IsInRole(userRoles string, inRole string) bool { + roles := strings.Split(userRoles, " ") + + for _, r := range roles { + if r == inRole { + return true + } + + } + + return false +} + // UserFromJson will decode the input and return a User func UserFromJson(data io.Reader) *User { decoder := json.NewDecoder(data) diff --git a/model/user_test.go b/model/user_test.go index a3b4be091..32a6f9b78 100644 --- a/model/user_test.go +++ b/model/user_test.go @@ -192,3 +192,13 @@ func TestCleanUsername(t *testing.T) { t.Fatal("didn't clean name properly") } } + +func TestRoles(t *testing.T) { + + if !IsValidRoles("admin") { + t.Fatal() + } + + //IsInRole + +} -- cgit v1.2.3-1-g7c22 From e54d0da392119e75788f3d5a431b85e931a7e824 Mon Sep 17 00:00:00 2001 From: =Corey Hulen Date: Fri, 4 Sep 2015 16:56:18 -0700 Subject: Adding unit tests for cmd line --- model/team_test.go | 4 ++-- model/user_test.go | 11 ++++++++++- model/utils.go | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) (limited to 'model') diff --git a/model/team_test.go b/model/team_test.go index 0dec07559..82480633f 100644 --- a/model/team_test.go +++ b/model/team_test.go @@ -106,8 +106,8 @@ var tReservedDomains = []struct { }{ {"test-hello", true}, {"test", true}, - {"admin", true}, - {"Admin-punch", true}, + //{"admin", true}, + //{"Admin-punch", true}, {"spin-punch-admin", false}, } diff --git a/model/user_test.go b/model/user_test.go index 32a6f9b78..190e5826e 100644 --- a/model/user_test.go +++ b/model/user_test.go @@ -199,6 +199,15 @@ func TestRoles(t *testing.T) { t.Fatal() } - //IsInRole + if IsValidRoles("junk") { + t.Fatal() + } + if IsInRole("system_admin junk", "admin") { + t.Fatal() + } + + if !IsInRole("system_admin junk", "system_admin") { + t.Fatal() + } } diff --git a/model/utils.go b/model/utils.go index 17d1c6317..d12a6104e 100644 --- a/model/utils.go +++ b/model/utils.go @@ -151,7 +151,7 @@ func IsValidEmail(email string) bool { var reservedName = []string{ "www", "web", - "admin", + //"admin", "support", "notify", "test", -- cgit v1.2.3-1-g7c22 From 8bf35081c80a56051037d0bc374e9fec3fb9529e Mon Sep 17 00:00:00 2001 From: =Corey Hulen Date: Thu, 10 Sep 2015 14:56:37 -0700 Subject: PLT-12 UI framework for admin console --- model/user_test.go | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'model') diff --git a/model/user_test.go b/model/user_test.go index 190e5826e..d9c1a00b6 100644 --- a/model/user_test.go +++ b/model/user_test.go @@ -210,4 +210,8 @@ func TestRoles(t *testing.T) { if !IsInRole("system_admin junk", "system_admin") { t.Fatal() } + + if IsInRole("admin", "system_admin") { + t.Fatal() + } } -- cgit v1.2.3-1-g7c22 From 616593f434ef65e019edff6e766e959147f35b32 Mon Sep 17 00:00:00 2001 From: =Corey Hulen Date: Thu, 10 Sep 2015 15:05:19 -0700 Subject: Adding back admin unit test --- model/team_test.go | 4 ++-- model/utils.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'model') diff --git a/model/team_test.go b/model/team_test.go index 82480633f..0dec07559 100644 --- a/model/team_test.go +++ b/model/team_test.go @@ -106,8 +106,8 @@ var tReservedDomains = []struct { }{ {"test-hello", true}, {"test", true}, - //{"admin", true}, - //{"Admin-punch", true}, + {"admin", true}, + {"Admin-punch", true}, {"spin-punch-admin", false}, } diff --git a/model/utils.go b/model/utils.go index d12a6104e..17d1c6317 100644 --- a/model/utils.go +++ b/model/utils.go @@ -151,7 +151,7 @@ func IsValidEmail(email string) bool { var reservedName = []string{ "www", "web", - //"admin", + "admin", "support", "notify", "test", -- cgit v1.2.3-1-g7c22 From e5e88d16049f4527eaab6b066c731fbe4247b574 Mon Sep 17 00:00:00 2001 From: =Corey Hulen Date: Fri, 11 Sep 2015 09:39:28 -0700 Subject: Renaming ROLE_ADMIN to ROLE_TEAM_ADMIN --- model/user.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'model') diff --git a/model/user.go b/model/user.go index 1a169f763..fdc519b99 100644 --- a/model/user.go +++ b/model/user.go @@ -13,7 +13,7 @@ import ( ) const ( - ROLE_ADMIN = "admin" + ROLE_TEAM_ADMIN = "admin" ROLE_SYSTEM_ADMIN = "system_admin" USER_AWAY_TIMEOUT = 5 * 60 * 1000 // 5 minutes USER_OFFLINE_TIMEOUT = 1 * 60 * 1000 // 1 minute @@ -289,7 +289,7 @@ func isValidRole(role string) bool { return true } - if role == ROLE_ADMIN { + if role == ROLE_TEAM_ADMIN { return true } -- cgit v1.2.3-1-g7c22