Add more tests (#1949)

* add more test code

* add more test code
This commit is contained in:
zryfish
2020-03-15 10:22:39 +08:00
committed by GitHub
parent f8e7d06b07
commit abf0d66b22
13 changed files with 444 additions and 55 deletions

View File

@@ -0,0 +1,57 @@
package ldap
import "kubesphere.io/kubesphere/pkg/api/iam"
// simpleLdap is a implementation of ldap.Interface, you should never use this in production env!
type simpleLdap struct {
store map[string]*iam.User
}
func NewSimpleLdap() Interface {
return &simpleLdap{
store: map[string]*iam.User{},
}
}
func (s simpleLdap) Create(user *iam.User) error {
s.store[user.Username] = user
return nil
}
func (s simpleLdap) Update(user *iam.User) error {
_, err := s.Get(user.Username)
if err != nil {
return err
}
s.store[user.Username] = user
return nil
}
func (s simpleLdap) Delete(name string) error {
_, err := s.Get(name)
if err != nil {
return err
}
delete(s.store, name)
return nil
}
func (s simpleLdap) Get(name string) (*iam.User, error) {
if user, ok := s.store[name]; !ok {
return nil, ErrUserNotExists
} else {
return user, nil
}
}
func (s simpleLdap) Verify(name string, password string) error {
if user, err := s.Get(name); err != nil {
return err
} else {
if user.Password != password {
return ErrInvalidCredentials
}
}
return nil
}