Features: - Full RBAC with 3 roles (superadmin/manager/contributor) - Ownership tracking on posts, tasks, campaigns, projects - Task system: assign to anyone, filter combobox, visibility scoping - Team members merged into users table (single source of truth) - Post thumbnails on kanban cards from attachments - Publication link validation before publishing - Interactive onboarding tutorial with Settings restart - Full Arabic/English i18n with RTL layout support - Language toggle in sidebar, IBM Plex Sans Arabic font - Brand-based visibility filtering for non-superadmins - Manager can only create contributors - Profile completion flow for new users - Cookie-based sessions (express-session + SQLite)
32 lines
676 B
JavaScript
32 lines
676 B
JavaScript
'use strict'
|
|
|
|
const util = require('util')
|
|
|
|
const index = require('./lib/entry-index')
|
|
const memo = require('./lib/memoization')
|
|
const path = require('path')
|
|
const rimraf = util.promisify(require('rimraf'))
|
|
const rmContent = require('./lib/content/rm')
|
|
|
|
module.exports = entry
|
|
module.exports.entry = entry
|
|
|
|
function entry (cache, key, opts) {
|
|
memo.clearMemoized()
|
|
return index.delete(cache, key, opts)
|
|
}
|
|
|
|
module.exports.content = content
|
|
|
|
function content (cache, integrity) {
|
|
memo.clearMemoized()
|
|
return rmContent(cache, integrity)
|
|
}
|
|
|
|
module.exports.all = all
|
|
|
|
function all (cache) {
|
|
memo.clearMemoized()
|
|
return rimraf(path.join(cache, '*(content-*|index-*)'))
|
|
}
|