Mercurial > gemma
comparison pkg/models/user.go @ 1901:71b722809b2b
Stretch import: Added stub.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 18 Jan 2019 15:52:51 +0100 |
parents | f1c3fe8b79f5 |
children | 4847ac70103a |
comparison
equal
deleted
inserted
replaced
1900:6a67cd819e93 | 1901:71b722809b2b |
---|---|
23 ) | 23 ) |
24 | 24 |
25 type ( | 25 type ( |
26 // Email is a string formed by a valid EMail address. | 26 // Email is a string formed by a valid EMail address. |
27 Email string | 27 Email string |
28 // Country is a valid country 2 letter code. | |
29 Country string | |
30 // Role is a string with a valid gemma role. | 28 // Role is a string with a valid gemma role. |
31 Role string | 29 Role string |
32 // UserName is a string forming a valid user name. | 30 // UserName is a string forming a valid user name. |
33 UserName string | 31 UserName string |
34 | 32 |
130 } | 128 } |
131 return | 129 return |
132 } | 130 } |
133 | 131 |
134 var ( | 132 var ( |
135 validCountries = []string{ | |
136 "AT", "BG", "DE", "HU", "HR", | |
137 "MD", "RO", "RS", "SK", "UA", | |
138 } | |
139 errNoValidCountry = errors.New("Not a valid country") | |
140 ) | |
141 | |
142 // UnmarshalJSON ensures that the given string forms a valid | |
143 // two letter country code. | |
144 func (c *Country) UnmarshalJSON(data []byte) error { | |
145 var s string | |
146 if err := json.Unmarshal(data, &s); err != nil { | |
147 return err | |
148 } | |
149 s = strings.ToUpper(s) | |
150 for _, v := range validCountries { | |
151 if v == s { | |
152 *c = Country(v) | |
153 return nil | |
154 } | |
155 } | |
156 return errNoValidCountry | |
157 } | |
158 | |
159 // Value implements the driver.Valuer interface. | |
160 func (c Country) Value() (driver.Value, error) { | |
161 return string(c), nil | |
162 } | |
163 | |
164 // Scan implements the sql.Scanner interfaces. | |
165 func (c *Country) Scan(src interface{}) (err error) { | |
166 if s, ok := src.(string); ok { | |
167 *c = Country(s) | |
168 } else { | |
169 err = errNoString | |
170 } | |
171 return | |
172 } | |
173 | |
174 var ( | |
175 validRoles = []string{ | 133 validRoles = []string{ |
176 "waterway_user", | 134 "waterway_user", |
177 "waterway_admin", | 135 "waterway_admin", |
178 "sys_admin", | 136 "sys_admin", |
179 } | 137 } |