auth: Fixed incorrect error reporting on permissions mismatching, added ensuring of user in auth.FindUser.
the build failed
the build failed
This commit is contained in:
@@ -29,7 +29,7 @@ var ErrExpired = errors.New("Claims have already expired")
|
|||||||
var ErrWrongUser = errors.New("Key is not valid for this user")
|
var ErrWrongUser = errors.New("Key is not valid for this user")
|
||||||
|
|
||||||
// ErrWrongPermissions is returned by CheckToken if the key cannot claim one or more of its permissions
|
// ErrWrongPermissions is returned by CheckToken if the key cannot claim one or more of its permissions
|
||||||
var ErrWrongPermissions = errors.New("Key is not valid for this user")
|
var ErrWrongPermissions = errors.New("User does not have these permissions")
|
||||||
|
|
||||||
// ErrDeletedUser is returned by CheckToken if the key can represent this user, but the user doesn't exist.
|
// ErrDeletedUser is returned by CheckToken if the key can represent this user, but the user doesn't exist.
|
||||||
var ErrDeletedUser = errors.New("User was not found")
|
var ErrDeletedUser = errors.New("User was not found")
|
||||||
|
|||||||
@@ -34,6 +34,25 @@ func FindUser(userid string) (User, error) {
|
|||||||
user := User{}
|
user := User{}
|
||||||
err := userCollection.FindId(userid).One(&user)
|
err := userCollection.FindId(userid).One(&user)
|
||||||
|
|
||||||
|
if err == mgo.ErrNotFound {
|
||||||
|
user := User{
|
||||||
|
ID: userid,
|
||||||
|
Nick: "",
|
||||||
|
Permissions: []string{
|
||||||
|
"member",
|
||||||
|
"log.edit",
|
||||||
|
"post.edit",
|
||||||
|
"post.move",
|
||||||
|
"file.upload",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
err := userCollection.Insert(user)
|
||||||
|
if err != nil {
|
||||||
|
return User{}, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return user, err
|
return user, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user