mirror of https://github.com/cbeuw/Cloak
Merge a7c36c999c into c3d5470ef7
This commit is contained in:
commit
6cf7872106
|
|
@ -222,6 +222,14 @@ func (manager *localManager) WriteUserInfo(u UserInfo) (err error) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
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 u.SessionsCap != nil {
|
||||||
if err = bucket.Put([]byte("SessionsCap"), i32ToB(*u.SessionsCap)); err != nil {
|
if err = bucket.Put([]byte("SessionsCap"), i32ToB(*u.SessionsCap)); err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
||||||
|
|
@ -41,10 +41,16 @@ func TestLocalManager_WriteUserInfo(t *testing.T) {
|
||||||
mgr, cleaner := makeManager(t)
|
mgr, cleaner := makeManager(t)
|
||||||
defer cleaner()
|
defer cleaner()
|
||||||
|
|
||||||
err := mgr.WriteUserInfo(mockUserInfo)
|
/* New user with partial UserInfo */
|
||||||
if err != nil {
|
err := mgr.WriteUserInfo(UserInfo{
|
||||||
t.Error(err)
|
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)
|
got, err := mgr.GetUserInfo(mockUID)
|
||||||
assert.NoError(t, err)
|
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 ErrNoUpCredit = errors.New("No upload credit left")
|
||||||
var ErrNoDownCredit = errors.New("No download credit left")
|
var ErrNoDownCredit = errors.New("No download credit left")
|
||||||
var ErrUserExpired = errors.New("User has expired")
|
var ErrUserExpired = errors.New("User has expired")
|
||||||
|
var ErrInvalidUserInfo = errors.New("Invalid user info")
|
||||||
|
|
||||||
type UserManager interface {
|
type UserManager interface {
|
||||||
AuthenticateUser([]byte) (int64, int64, error)
|
AuthenticateUser([]byte) (int64, int64, error)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue