Simple-Sequelize-Dashboard est un middleware qui permet d'administrer la base de donnée d'un site rapidement et simplement avec un déploiement par NPM.
Depuis la vue d'administration, il est possible de gérer :
- Les rôles de manière simplifiés
- les utilisateurs
- les permissions
Il est capable de générer les trois tables de bases pour la gestion de droits d'accès (adminUser, adminRole, adminPermission), les différentes permissions sur vos tables respecterons les principes CRUD.
Le projet doit être écrit en :
- NodeJS
- Sequelize
- Express
Afin de réaliser ce projet nous dépendons de :
- Bootstrap
- pug
- cookier-parser
- express-session et express-session-sequelize
- dotenv
- bcrypt
- path
Pour installer le projet, il suffit de lancer la commande suivante :
npm install simple-sequelize-dashboard
Pour utiliser le projet, il faudra ajouter la commande suivante :
const options = {
baseUrl: '/admin', // Url de base du panel admin
sessionName: 'Dashboard_admin_session', // Nom de la session
sessionSecret: 'Dashboard admin session secret', // Clé secréte de la session
sessionCookieMaxAge: 20 * MINUTES, // Durée de vie de la session
sessionCookieSecure: false, // Cookie sécurisé
}
app.use(useSimpleDash(sequelize, options)
Cette commande doit se trouver impérativement avant la déclaration de express session et le routeur. Elle prend en paramètre l'instance de sequelize. Il est possible de passer un deuxième paramètre qui est un objet de configuration options.
Les options sont les suivantes :
- baseUrl : Url de base du panel admin (par défaut : '/admin')
- sessionName : Nom de la session (par défaut : 'Dashboard_admin_session')
- sessionSecret: Clé secréte de la session (par défaut : 'Dashboard admin session secret')
- sessionCookieMaxAge: Durée de vie de la session (par défaut : 20 * MINUTES)
- sessionCookieSecure: Cookie sécurisé (par défaut : false)
La vue du panel admin se veut simple est générer avec Bootstrap/pug. Dans la sidebar, il est possible de voir les différentes tables de la base de donnée. Il est possible de cliquer sur une table pour voir ses entrées. Une fois sur l'affichage des entrées, il est possible de modifier ou supprimer une entrée selon les permissions de l'utilisateur.
La structure de fichier du middleware est la suivante :
.
├── lib
│ ├── controller
│ │ ├── authController.js
│ │ ├── dashboardController.js
│ │ └── superAdminController.js
│ ├── middlewares
│ │ ├── addAdminRenderMethod.js
│ │ ├── addModelsToLocals.js
│ │ ├── adminSession.js
│ │ ├── parseDatabaseModelsInLocals.js
│ │ ├── parseModelsInfoInLocals.js
│ │ └── prepareSidebarLocals.js
│ ├── migrations
| | └── 0000_create_tables_admin_role_permission.js
│ ├── models
│ │ ├── Admin.js
| | ├── initDashModels.js
| | ├── Permission.js
│ │ ├── Role.js
│ │ ├── Setting.js
│ ├── public
│ │ ├── css
│ │ | └── dasboardStyle.css
│ │ ├── img
│ │ | └── search.svg
│ │ └── integration
| | └── index.html
│ ├── routers
│ │ ├── authRouter.js
│ │ ├── dashboardRouter.js
│ │ └── superAdminRouter.js
│ ├── views
│ │ ├── layouts
│ │ | └── main.pug
│ │ ├── mixins
│ │ | ├── modalRecordEditor.pug
│ │ ├── partials
│ │ | ├── modale.pug
│ │ | ├── head.pug
│ │ | ├── navbar.pug
│ │ | ├── sidebar.pug
| | └── tableView.pug
│ ├── utils
│ │ └── updateDbSchema.js
│ └── useSimpleDash.js
└── README.md