diff options
author | jloup <jloup@jloup.work> | 2018-05-13 15:02:48 +0100 |
---|---|---|
committer | jloup <jloup@jloup.work> | 2018-05-13 15:02:48 +0100 |
commit | d1c0ccfcb84f1b8778e38b027a333d03e1f4ae9e (patch) | |
tree | 08cac70f370aa17b9491aefdb73ecc64425e5f71 /api/user.go | |
parent | 36942af3bf6eec57c4bebd6c373fe58e6323bce4 (diff) | |
download | Front-d1c0ccfcb84f1b8778e38b027a333d03e1f4ae9e.tar.gz Front-d1c0ccfcb84f1b8778e38b027a333d03e1f4ae9e.tar.zst Front-d1c0ccfcb84f1b8778e38b027a333d03e1f4ae9e.zip |
Account information panel.v0.0.11
Diffstat (limited to 'api/user.go')
-rw-r--r-- | api/user.go | 59 |
1 files changed, 39 insertions, 20 deletions
diff --git a/api/user.go b/api/user.go index 2848696..a2737fd 100644 --- a/api/user.go +++ b/api/user.go | |||
@@ -16,6 +16,26 @@ const ( | |||
16 | VALID_EMAIL_REGEX = `(?i)^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$` | 16 | VALID_EMAIL_REGEX = `(?i)^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$` |
17 | ) | 17 | ) |
18 | 18 | ||
19 | func UserConfirmed(c *gin.Context) *Error { | ||
20 | user, exists := c.Get("user") | ||
21 | |||
22 | if !exists { | ||
23 | return &Error{NotAuthorized, "not authorized", fmt.Errorf("no user key in context")} | ||
24 | } | ||
25 | |||
26 | if user.(db.User).Status != db.Confirmed { | ||
27 | return &Error{UserNotConfirmed, "user awaiting admin validation", fmt.Errorf("user '%v' not confirmed", user)} | ||
28 | } | ||
29 | |||
30 | return nil | ||
31 | } | ||
32 | |||
33 | func GetUser(c *gin.Context) db.User { | ||
34 | user, _ := c.Get("user") | ||
35 | |||
36 | return user.(db.User) | ||
37 | } | ||
38 | |||
19 | func IsValidEmailAddress(email string) bool { | 39 | func IsValidEmailAddress(email string) bool { |
20 | r := regexp.MustCompile(VALID_EMAIL_REGEX) | 40 | r := regexp.MustCompile(VALID_EMAIL_REGEX) |
21 | 41 | ||
@@ -142,26 +162,6 @@ func (q SigninQuery) Run() (interface{}, *Error) { | |||
142 | return SignResult{token}, nil | 162 | return SignResult{token}, nil |
143 | } | 163 | } |
144 | 164 | ||
145 | func UserConfirmed(c *gin.Context) *Error { | ||
146 | user, exists := c.Get("user") | ||
147 | |||
148 | if !exists { | ||
149 | return &Error{NotAuthorized, "not authorized", fmt.Errorf("no user key in context")} | ||
150 | } | ||
151 | |||
152 | if user.(db.User).Status != db.Confirmed { | ||
153 | return &Error{UserNotConfirmed, "user awaiting admin validation", fmt.Errorf("user '%v' not confirmed", user)} | ||
154 | } | ||
155 | |||
156 | return nil | ||
157 | } | ||
158 | |||
159 | func GetUser(c *gin.Context) db.User { | ||
160 | user, _ := c.Get("user") | ||
161 | |||
162 | return user.(db.User) | ||
163 | } | ||
164 | |||
165 | type ConfirmEmailQuery struct { | 165 | type ConfirmEmailQuery struct { |
166 | In struct { | 166 | In struct { |
167 | Token string | 167 | Token string |
@@ -214,3 +214,22 @@ func (q ConfirmEmailQuery) Run() (interface{}, *Error) { | |||
214 | 214 | ||
215 | return nil, nil | 215 | return nil, nil |
216 | } | 216 | } |
217 | |||
218 | type UserAccountQuery struct { | ||
219 | In struct { | ||
220 | User db.User | ||
221 | } | ||
222 | Out struct { | ||
223 | Email string `json:"email"` | ||
224 | } | ||
225 | } | ||
226 | |||
227 | func (q UserAccountQuery) ValidateParams() *Error { | ||
228 | return nil | ||
229 | } | ||
230 | |||
231 | func (q UserAccountQuery) Run() (interface{}, *Error) { | ||
232 | q.Out.Email = q.In.User.Email | ||
233 | |||
234 | return q.Out, nil | ||
235 | } | ||