summaryrefslogtreecommitdiffstats
path: root/modules/structs/user.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/structs/user.go')
-rw-r--r--modules/structs/user.go38
1 files changed, 38 insertions, 0 deletions
diff --git a/modules/structs/user.go b/modules/structs/user.go
new file mode 100644
index 0000000000..251c803129
--- /dev/null
+++ b/modules/structs/user.go
@@ -0,0 +1,38 @@
+// Copyright 2014 The Gogs Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package structs
+
+import (
+ "encoding/json"
+)
+
+// User represents a user
+// swagger:model
+type User struct {
+ // the user's id
+ ID int64 `json:"id"`
+ // the user's username
+ UserName string `json:"login"`
+ // the user's full name
+ FullName string `json:"full_name"`
+ // swagger:strfmt email
+ Email string `json:"email"`
+ // URL to the user's avatar
+ AvatarURL string `json:"avatar_url"`
+ // User locale
+ Language string `json:"language"`
+ // Is the user an administrator
+ IsAdmin bool `json:"is_admin"`
+}
+
+// MarshalJSON implements the json.Marshaler interface for User, adding field(s) for backward compatibility
+func (u User) MarshalJSON() ([]byte, error) {
+ // Re-declaring User to avoid recursion
+ type shadow User
+ return json.Marshal(struct {
+ shadow
+ CompatUserName string `json:"username"`
+ }{shadow(u), u.UserName})
+}