generated from azures04/Base-REST-API
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.
61 lines
1.5 KiB
JavaScript
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
|
|
}; |