implement user_permission

This commit is contained in:
2025-01-31 10:27:06 -06:00
parent 9ee27f14cf
commit 72414bc8fb
3 changed files with 56 additions and 0 deletions

View File

@@ -19,6 +19,20 @@ func (q *Queries) AddSvg(ctx context.Context, svg string) error {
return err
}
const addUserPermission = `-- name: AddUserPermission :exec
INSERT INTO user_permission (user_id, permission) VALUES (?, ?)
`
type AddUserPermissionParams struct {
UserID string
Permission string
}
func (q *Queries) AddUserPermission(ctx context.Context, arg AddUserPermissionParams) error {
_, err := q.db.ExecContext(ctx, addUserPermission, arg.UserID, arg.Permission)
return err
}
const createCustomer = `-- name: CreateCustomer :exec
INSERT INTO customer (
id
@@ -268,6 +282,33 @@ func (q *Queries) GetUser(ctx context.Context, arg GetUserParams) (GetUserRow, e
return i, err
}
const getUserPermissions = `-- name: GetUserPermissions :many
SELECT permission FROM user_permission WHERE user_id = ?
`
func (q *Queries) GetUserPermissions(ctx context.Context, userID string) ([]string, error) {
rows, err := q.db.QueryContext(ctx, getUserPermissions, userID)
if err != nil {
return nil, err
}
defer rows.Close()
var items []string
for rows.Next() {
var permission string
if err := rows.Scan(&permission); err != nil {
return nil, err
}
items = append(items, permission)
}
if err := rows.Close(); err != nil {
return nil, err
}
if err := rows.Err(); err != nil {
return nil, err
}
return items, nil
}
const getUserRenew = `-- name: GetUserRenew :many
SELECT
id

View File

@@ -137,3 +137,9 @@ WHERE id = ?;
-- name: GetSvgCount :one
SELECT COUNT(*) as count FROM svg_icon;
-- name: GetUserPermissions :many
SELECT permission FROM user_permission WHERE user_id = ?;
-- name: AddUserPermission :exec
INSERT INTO user_permission (user_id, permission) VALUES (?, ?);

View File

@@ -55,3 +55,12 @@ CREATE TABLE IF NOT EXISTS svg_icon (
id INTEGER PRIMARY KEY AUTOINCREMENT
,svg TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS user_permission (
id INTEGER PRIMARY KEY AUTOINCREMENT
,user_id TEXT NOT NULL
,permission TEXT NOT NULL
,FOREIGN KEY (user_id) REFERENCES user(id)
,UNIQUE(user_id, permission)
);