From b5a28c0d39795c7cb2b35d5448b2f2b944025d76 Mon Sep 17 00:00:00 2001 From: Nathan Coad Date: Tue, 9 Jan 2024 16:31:39 +1100 Subject: [PATCH] try again --- models/permissions.go | 1 + models/secret.go | 9 +++++---- models/setup.go | 18 ++++++++---------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/models/permissions.go b/models/permissions.go index 6aa1d9c..54c8d17 100644 --- a/models/permissions.go +++ b/models/permissions.go @@ -6,5 +6,6 @@ type Permission struct { ReadOnly bool `db:"ReadOnly"` RoleId int `db:"RoleId"` SafeId int `db:"SafeId"` + UserId int `db:"UserId"` GroupId int `db:"GroupId"` } diff --git a/models/secret.go b/models/secret.go index feb1eca..4e1b574 100644 --- a/models/secret.go +++ b/models/secret.go @@ -26,10 +26,11 @@ type Secret struct { // Used for querying all secrets the user has access to type UserSecret struct { - User + UserId int `db:"UserId" json:"userId"` + GroupId int `db:"GroupId" json:"groupId"` Group Permission - Safe + SafeName string `db:"SafeName"` Secret } @@ -71,7 +72,7 @@ func SecretsGetAllowed(s *Secret, userId int) ([]UserSecret, error) { // Query for group access queryArgs := []interface{}{} - query := `SELECT * + query := `SELECT users.UserId, users.GroupId, permissions.ReadOnly, safes.SafeName, secrets.* FROM users INNER JOIN groups ON users.GroupId = groups.GroupId INNER JOIN permissions ON groups.GroupId = permissions.GroupId @@ -125,7 +126,7 @@ func SecretsGetAllowed(s *Secret, userId int) ([]UserSecret, error) { */ // Execute the query - log.Printf("SecretsGetAllowedForGroup query string : '%s'\nArguments: %+v\n", query, queryArgs) + log.Printf("SecretsGetAllowedForGroup query string : '%s'\nArguments:%+v\n", query, queryArgs) rows, err := db.Queryx(query, queryArgs...) if err != nil { diff --git a/models/setup.go b/models/setup.go index ddabe77..1ac41f0 100644 --- a/models/setup.go +++ b/models/setup.go @@ -65,11 +65,9 @@ const createPermissions = ` Description VARCHAR DEFAULT '', ReadOnly BOOLEAN DEFAULT 0, SafeId INTEGER, - UserId INTEGER, - GroupId INTEGER, - FOREIGN KEY (SafeId) REFERENCES safes(SafeId), - FOREIGN KEY (UserId) REFERENCES users(UserId), - FOREIGN KEY (GroupId) REFERENCES groups(GroupId) + UserId INTEGER DEFAULT 0, + GroupId INTEGER DEFAULT 0, + FOREIGN KEY (SafeId) REFERENCES safes(SafeId) ); ` @@ -367,15 +365,15 @@ func CreateTables() { Description VARCHAR DEFAULT '', ReadOnly BOOLEAN DEFAULT 0, SafeId INTEGER, - UserId INTEGER, - GroupId INTEGER, - FOREIGN KEY (SafeId) REFERENCES safes(SafeId), - FOREIGN KEY (UserId) REFERENCES users(UserId), - FOREIGN KEY (GroupId) REFERENCES groups(GroupId) + UserId INTEGER DEFAULT 0, + GroupId INTEGER DEFAULT 0, + FOREIGN KEY (SafeId) REFERENCES safes(SafeId) ); INSERT INTO permissions SELECT PermissionId, SafeId, UserId, GroupId, '' AS Description, 0 as ReadOnly FROM _permissions_old; UPDATE permissions SET ReadOnly = 0 WHERE ReadOnly is null; UPDATE permissions SET Description = '' WHERE Description is null; + UPDATE permissions SET UserId = 0 WHERE UserId is null; + UPDATE permissions SET GroupId = 0 WHERE GroupId is null; COMMIT; PRAGMA foreign_keys=on; DROP TABLE _permissions_old;