diff --git a/auth/middleware.go b/auth/middleware.go index 612f511954d112ddd1b86f075ec00faef90d5b47..15e8d0e6a1dc84a235cbb5f2908ffadc227dd7b1 100644 --- a/auth/middleware.go +++ b/auth/middleware.go @@ -68,6 +68,9 @@ Bio *string SuspensionNotice *string AuthMethod int + // Only set for meta.sr.ht-api + PGPKey *string + // Only filled out if AuthMethod == AUTH_INTERNAL InternalAuth InternalAuth @@ -417,6 +420,11 @@ `u.suspension_notice`, }). From(`"user" u`). Where(`u.username = ?`, username) + if config.ServiceName(ctx) == "meta.sr.ht" { + query = query. + LeftJoin(`pgpkey p ON p.id = u.pgp_key_id`). + Column(`p.key`) + } if rows, err = query.RunWith(tx).Query(); err != nil { return err } @@ -428,7 +436,7 @@ return err } return FetchMetaProfile(ctx, username, user) } - if err = rows.Scan( + cols := []interface{}{ &user.UserID, &user.Username, &user.Created, &user.Updated, &user.Email, @@ -436,7 +444,12 @@ &user.UserType, &user.URL, &user.Location, &user.Bio, - &user.SuspensionNotice); err != nil { + &user.SuspensionNotice, + } + if config.ServiceName(ctx) == "meta.sr.ht" { + cols = append(cols, &user.PGPKey) + } + if err = rows.Scan(cols...); err != nil { return err } if rows.Next() {