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)
Browser-friendly inheritance fully compatible with standard node.js inherits.
This package exports standard inherits from node.js util module in
node environment, but also provides alternative browser-friendly
implementation through browser
field. Alternative
implementation is a literal copy of standard one located in standalone
module to avoid requiring of util. It also has a shim for old
browsers with no Object.create support.
While keeping you sure you are using standard inherits
implementation in node.js environment, it allows bundlers such as
browserify to not
include full util package to your client code if all you need is
just inherits function. It worth, because browser shim for util
package is large and inherits is often the single function you need
from it.
It's recommended to use this package instead of
require('util').inherits for any code that has chances to be used
not only in node.js but in browser too.
usage
var inherits = require('inherits');
// then use exactly as the standard one
note on version ~1.0
Version ~1.0 had completely different motivation and is not compatible
neither with 2.0 nor with standard node.js inherits.
If you are using version ~1.0 and planning to switch to ~2.0, be careful:
- new version uses
super_instead ofsuperfor referencing superclass - new version overwrites current prototype while old one preserves any existing fields on it