Skip to content

Commit

Permalink
consent: Only fetch latest consent state (#1124)
Browse files Browse the repository at this point in the history
This patch resolves an issue where authorize code flow response times deteriorate as users log in often.

Closes #1119

Signed-off-by: arekkas <aeneas@ory.am>
  • Loading branch information
aeneasr committed Oct 25, 2018
1 parent 2dd6add commit 0df90c8
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 4 deletions.
6 changes: 3 additions & 3 deletions consent/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -172,9 +172,9 @@ func (h *Handler) GetConsentSessions(w http.ResponseWriter, r *http.Request, ps
h.H.WriteError(w, r, errors.WithStack(fosite.ErrInvalidRequest.WithDebug("Parameter user is not defined")))
return
}
limit, offset := pagination.Parse(r, 100, 0, 500)

sessions, err := h.M.FindPreviouslyGrantedConsentRequestsByUser(r.Context(), user, limit, offset)
limit, offset := pagination.Parse(r, 100, 0, 500)
s, err := h.M.FindPreviouslyGrantedConsentRequestsByUser(r.Context(), user, limit, offset)
if errors.Cause(err) == ErrNoPreviousConsentFound {
h.H.Write(w, r, []PreviousConsentSession{})
return
Expand All @@ -185,7 +185,7 @@ func (h *Handler) GetConsentSessions(w http.ResponseWriter, r *http.Request, ps

var a []PreviousConsentSession

for _, session := range sessions {
for _, session := range s {
session.ConsentRequest.Client = sanitizeClient(session.ConsentRequest.Client)
a = append(a, PreviousConsentSession(session))
}
Expand Down
4 changes: 3 additions & 1 deletion consent/manager_sql.go
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,8 @@ WHERE
r.subject=? AND r.client_id=? AND r.skip=FALSE
AND
(h.error='{}' AND h.remember=TRUE)
`), subject, client); err != nil {
ORDER BY h.requested_at
LIMIT 1`), subject, client); err != nil {
if err == sql.ErrNoRows {
return nil, errors.WithStack(ErrNoPreviousConsentFound)
}
Expand All @@ -430,6 +431,7 @@ WHERE
r.subject=? AND r.skip=FALSE
AND
(h.error='{}' AND h.remember=TRUE)
ORDER BY h.requested_at
LIMIT ? OFFSET ?
`), subject, limit, offset); err != nil {
return nil, sqlcon.HandleError(err)
Expand Down

0 comments on commit 0df90c8

Please sign in to comment.