From aa9ce272dcfa1380b2f05bc3a90ef8ca1b0a7f62 Mon Sep 17 00:00:00 2001 From: Tobi Smethurst <31960611+tsmethurst@users.noreply.github.com> Date: Mon, 22 Mar 2021 22:26:54 +0100 Subject: Oauth/token (#7) * add host and protocol options * some fiddling * tidying up and comments * tick off /oauth/token * tidying a bit * tidying * go mod tidy * allow attaching middleware to server * add middleware * more user friendly * add comments * comments * store account + app * tidying * lots of restructuring * lint + tidy --- internal/oauth/pgclientstore.go | 81 ----------------------------------------- 1 file changed, 81 deletions(-) delete mode 100644 internal/oauth/pgclientstore.go (limited to 'internal/oauth/pgclientstore.go') diff --git a/internal/oauth/pgclientstore.go b/internal/oauth/pgclientstore.go deleted file mode 100644 index 1df46fedb..000000000 --- a/internal/oauth/pgclientstore.go +++ /dev/null @@ -1,81 +0,0 @@ -/* - GoToSocial - Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see . -*/ - -package oauth - -import ( - "context" - "fmt" - - "github.com/go-pg/pg/v10" - "github.com/gotosocial/oauth2/v4" - "github.com/gotosocial/oauth2/v4/models" -) - -type pgClientStore struct { - conn *pg.DB -} - -func NewPGClientStore(conn *pg.DB) oauth2.ClientStore { - pts := &pgClientStore{ - conn: conn, - } - return pts -} - -func (pcs *pgClientStore) GetByID(ctx context.Context, clientID string) (oauth2.ClientInfo, error) { - poc := &oauthClient{ - ID: clientID, - } - if err := pcs.conn.WithContext(ctx).Model(poc).Where("id = ?", poc.ID).Select(); err != nil { - return nil, fmt.Errorf("error in clientstore getbyid searching for client %s: %s", clientID, err) - } - return models.New(poc.ID, poc.Secret, poc.Domain, poc.UserID), nil -} - -func (pcs *pgClientStore) Set(ctx context.Context, id string, cli oauth2.ClientInfo) error { - poc := &oauthClient{ - ID: cli.GetID(), - Secret: cli.GetSecret(), - Domain: cli.GetDomain(), - UserID: cli.GetUserID(), - } - _, err := pcs.conn.WithContext(ctx).Model(poc).OnConflict("(id) DO UPDATE").Insert() - if err != nil { - return fmt.Errorf("error in clientstore set: %s", err) - } - return nil -} - -func (pcs *pgClientStore) Delete(ctx context.Context, id string) error { - poc := &oauthClient{ - ID: id, - } - _, err := pcs.conn.WithContext(ctx).Model(poc).Where("id = ?", poc.ID).Delete() - if err != nil { - return fmt.Errorf("error in clientstore delete: %s", err) - } - return nil -} - -type oauthClient struct { - ID string - Secret string - Domain string - UserID string -} -- cgit v1.2.3