func (as *authSuite) TestRemove(c *C) { as.state.Lock() user, err := auth.NewUser(as.state, "username", "macaroon", []string{"discharge"}) as.state.Unlock() c.Check(err, IsNil) as.state.Lock() _, err = auth.User(as.state, user.ID) as.state.Unlock() c.Check(err, IsNil) as.state.Lock() err = auth.RemoveUser(as.state, user.ID) as.state.Unlock() c.Assert(err, IsNil) as.state.Lock() _, err = auth.User(as.state, user.ID) as.state.Unlock() c.Check(err, ErrorMatches, "invalid user") as.state.Lock() err = auth.RemoveUser(as.state, user.ID) as.state.Unlock() c.Assert(err, ErrorMatches, "invalid user") }
func logoutUser(c *Command, r *http.Request, user *auth.UserState) Response { state := c.d.overlord.State() state.Lock() defer state.Unlock() if user == nil { return BadRequest("not logged in") } err := auth.RemoveUser(state, user.ID) if err != nil { return InternalError(err.Error()) } return SyncResponse(nil, nil) }