Forbid to create user without full UserInfo

pull/234/head
puh 8 months ago
parent fcb600efff
commit a7c36c999c
No known key found for this signature in database
GPG Key ID: 171E3E1356CEE151

@ -149,4 +149,4 @@ externalDocs:
host: 127.0.0.1:8080
basePath: /
schemes:
- http
- http

@ -222,6 +222,14 @@ func (manager *localManager) WriteUserInfo(u UserInfo) (err error) {
if err != nil {
return err
}
k, v := bucket.Cursor().First()
// Registration required full UserInfo
if k == nil && v == nil {
if u.SessionsCap == nil || u.UpRate == nil || u.DownRate == nil ||
u.UpCredit == nil || u.DownCredit == nil || u.ExpiryTime == nil {
return ErrInvalidUserInfo
}
}
if u.SessionsCap != nil {
if err = bucket.Put([]byte("SessionsCap"), i32ToB(*u.SessionsCap)); err != nil {
return err

@ -41,10 +41,16 @@ func TestLocalManager_WriteUserInfo(t *testing.T) {
mgr, cleaner := makeManager(t)
defer cleaner()
err := mgr.WriteUserInfo(mockUserInfo)
if err != nil {
t.Error(err)
}
/* New user with partial UserInfo */
err := mgr.WriteUserInfo(UserInfo{
UID: mockUID,
SessionsCap: JustInt32(*mockUserInfo.SessionsCap + 1),
})
assert.Error(t, err, ErrInvalidUserInfo)
/* New user with full UserInfo */
err = mgr.WriteUserInfo(mockUserInfo)
assert.NoError(t, err)
got, err := mgr.GetUserInfo(mockUID)
assert.NoError(t, err)

@ -52,6 +52,7 @@ var ErrMangerIsVoid = errors.New("cannot perform operation with user manager as
var ErrNoUpCredit = errors.New("No upload credit left")
var ErrNoDownCredit = errors.New("No download credit left")
var ErrUserExpired = errors.New("User has expired")
var ErrInvalidUserInfo = errors.New("Invalid user info")
type UserManager interface {
AuthenticateUser([]byte) (int64, int64, error)

Loading…
Cancel
Save