focalboard/server/model/user.go
Scott Bishel 22aae37dd1
User updates (#3244)
* retrieve additional user fields

* implement config setting

* cleanup

* fix tests

* remove unused constant

* fix more tests

* add tests, cleanup

* lint fixes

* revert bad lint fixes

* more merge fixes

* update to use personal setting

* add user settings

* update package-lock.json

* lint fixes

* npm audit fix

* update tests

* Revert "lint fixes"

This reverts commit 6a50d335ca.

* Revert "update package-lock.json"

This reverts commit 1117e557e4.

* Revert "npm audit fix"

This reverts commit 77ea931c77.

* Revert "Revert "lint fixes""

This reverts commit 3ebd81b9fa.

* restore to original

* fix for empty prefs

* fix bad merge

Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
2022-07-08 08:43:43 -06:00

104 lines
2.3 KiB
Go

package model
import (
"encoding/json"
"io"
)
const (
SingleUser = "single-user"
GlobalTeamID = "0"
SystemUserID = "system"
)
// User is a user
// swagger:model
type User struct {
// The user ID
// required: true
ID string `json:"id"`
// The user name
// required: true
Username string `json:"username"`
// The user's email
// required: true
Email string `json:"-"`
// The user's nickname
Nickname string `json:"nickname"`
// The user's first name
FirstName string `json:"firstname"`
// The user's last name
LastName string `json:"lastname"`
// swagger:ignore
Password string `json:"-"`
// swagger:ignore
MfaSecret string `json:"-"`
// swagger:ignore
AuthService string `json:"-"`
// swagger:ignore
AuthData string `json:"-"`
// User settings
// required: true
Props map[string]interface{} `json:"props"`
// Created time in miliseconds since the current epoch
// required: true
CreateAt int64 `json:"create_at,omitempty"`
// Updated time in miliseconds since the current epoch
// required: true
UpdateAt int64 `json:"update_at,omitempty"`
// Deleted time in miliseconds since the current epoch, set to indicate user is deleted
// required: true
DeleteAt int64 `json:"delete_at"`
// If the user is a bot or not
// required: true
IsBot bool `json:"is_bot"`
// If the user is a guest or not
// required: true
IsGuest bool `json:"is_guest"`
Roles string `json:"roles"`
}
// UserPropPatch is a user property patch
// swagger:model
type UserPropPatch struct {
// The user prop updated fields
// required: false
UpdatedFields map[string]string `json:"updatedFields"`
// The user prop removed fields
// required: false
DeletedFields []string `json:"deletedFields"`
}
type Session struct {
ID string `json:"id"`
Token string `json:"token"`
UserID string `json:"user_id"`
AuthService string `json:"authService"`
Props map[string]interface{} `json:"props"`
CreateAt int64 `json:"create_at,omitempty"`
UpdateAt int64 `json:"update_at,omitempty"`
}
func UserFromJSON(data io.Reader) (*User, error) {
var user User
if err := json.NewDecoder(data).Decode(&user); err != nil {
return nil, err
}
return &user, nil
}