WebService/repositories/permissionsRepository.js
azures04 1e78bd68cf Add SQLite database and repositories, remove old routes
Introduces a new SQLite database setup using better-sqlite3, with initialization scripts and repository modules for users, permissions, and licenses. Removes legacy user and register routes and related test files. Updates dependencies to include better-sqlite3, bcryptjs, and ftp-srv.
2026-01-27 05:29:40 +01:00

61 lines
1.5 KiB
JavaScript

const database = require("../modules/database")
function grant(userId, productId, channel, permissionKey) {
const query = `
INSERT INTO permissions (
userId,
productId,
channel,
permissionKey
)
VALUES (
?,
?,
?,
?
)
`
const statement = database.prepare(query)
return statement.run(userId, productId, channel, permissionKey)
}
function revoke(userId, productId, channel, permissionKey) {
const query = `
DELETE FROM permissions
WHERE userId = ?
AND productId = ?
AND channel = ?
AND permissionKey = ?
`
const statement = database.prepare(query)
return statement.run(userId, productId, channel, permissionKey)
}
function findByUserAndProduct(userId, productId) {
const query = `
SELECT channel, permissionKey
FROM permissions
WHERE userId = ?
AND productId = ?
`
const statement = database.prepare(query)
return statement.all(userId, productId)
}
function revokeAllOnProduct(userId, productId) {
const query = `
DELETE FROM permissions
WHERE userId = ?
AND productId = ?
`
const statement = database.prepare(query)
return statement.run(userId, productId)
}
module.exports = {
grant,
revoke,
findByUserAndProduct,
revokeAllOnProduct
};