Этот коммит содержится в:
=Corey Hulen
2015-09-04 11:59:10 -07:00
родитель 05d95d80a8
Коммит 58d0d9afd2
11 изменённых файлов: 473 добавлений и 97 удалений

Просмотреть файл

@@ -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)

Просмотреть файл

@@ -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
}