rbac and licenses
This commit is contained in:
@@ -313,8 +313,8 @@ class PluginManager {
|
||||
permissions: [
|
||||
{
|
||||
scope: name, // Plugin Scope (default = plugin name)
|
||||
action: "Default_Access",
|
||||
resource: "MenuItem"
|
||||
resource: "Plugin",
|
||||
action: "Default_Access"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -424,6 +424,12 @@ async removeRoleFromUser(authId, roleId) {
|
||||
// =========================================================
|
||||
// 🔐 PERMISSION CRUD
|
||||
// =========================================================
|
||||
async getPermission() {
|
||||
const permission = this.db.get('permissionModel');
|
||||
console.log(permission)
|
||||
return await permission.findAll({ raw: true }) || [];
|
||||
}
|
||||
|
||||
|
||||
async createPermission(data) {
|
||||
const Permission = this.db.get('permissionModel');
|
||||
|
||||
@@ -75,26 +75,40 @@ class VaultifyManager {
|
||||
// =========================================================
|
||||
|
||||
verify(record) {
|
||||
|
||||
try {
|
||||
const payload = this.parsePayload(record.Payload);
|
||||
|
||||
const data = {
|
||||
Customer_ID: record.Customer_ID,
|
||||
Feature: record.Feature,
|
||||
Payload: this.parsePayload(record.Payload),
|
||||
ExpiresAt: record.ExpiresAt
|
||||
Payload: payload,
|
||||
ExpiresAt: record.ExpiresAt ?? null
|
||||
};
|
||||
|
||||
const verifier = crypto.createVerify('RSA-SHA256');
|
||||
|
||||
verifier.update(JSON.stringify(data));
|
||||
verifier.end();
|
||||
|
||||
return verifier.verify(
|
||||
const isValid = verifier.verify(
|
||||
this.publicKey,
|
||||
record.Signature,
|
||||
'base64'
|
||||
);
|
||||
|
||||
if (!isValid) return false;
|
||||
|
||||
// 🔥 WICHTIG: Ablaufdatum HIER erzwingen
|
||||
if (payload.expiresAt && record.ExpiresAt) {
|
||||
if (payload.expiresAt !== record.ExpiresAt) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (record.ExpiresAt && new Date(record.ExpiresAt) < new Date()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user