Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/juicycleff/nestjs-casbin
NestJS Casbin module with MongoDB Adapter
https://github.com/juicycleff/nestjs-casbin
casbin casbin-adapter nestjs
Last synced: 3 months ago
JSON representation
NestJS Casbin module with MongoDB Adapter
- Host: GitHub
- URL: https://github.com/juicycleff/nestjs-casbin
- Owner: juicycleff
- License: mit
- Created: 2019-10-26T20:35:41.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-24T00:44:18.000Z (almost 2 years ago)
- Last Synced: 2024-04-14T09:58:57.480Z (9 months ago)
- Topics: casbin, casbin-adapter, nestjs
- Language: TypeScript
- Size: 1.09 MB
- Stars: 26
- Watchers: 3
- Forks: 11
- Open Issues: 30
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
NestJs Casbin Mongodb
NestJS module for Casbin. Supports all adapters
### Installation
```bash
$ yarn install nestjs-casbin
```### Setup module
```typescript
import { Module } from '@nestjs/common';
import { NestCasbinModule } from 'nestjs-casbin';
import { join } from 'path';
import { MongoAdapter } from 'casbin-mongodb-adapter';const adapter = (async () => await MongoAdapter.newAdapter({
uri: 'mongodb://localhost:27017',
collectionName: 'casbin',
databaseName: 'casbindb',
}));@Module({
imports: [
NestCasbinModule.register({
adapter,
casbinModelPath: join(__dirname, './rbac_model.conf')
}),
],
controllers: [],
providers: [],
})
export class AppModule {}
``````typescript
import { Module, Injectable } from '@nestjs/common';
import { MongoAdapter } from 'casbin-mongodb-adapter';
import { NestCasbinModuleOptions, NestCasbinOptionsFactory, NestCasbinModule } from 'nestjs-casbin';
import { join } from 'path';@Injectable()
export class CasbinConfigService implements NestCasbinOptionsFactory {
async createCasbinOptions(connectionName?: string): Promise | NestCasbinModuleOptions {
const adapter = await MongoAdapter.newAdapter({
uri: 'mongodb://localhost:27017',
collectionName: 'casbin',
databaseName: 'casbindb',
});return {
adapter,
casbinModelPath: join(__dirname, './rbac_model.conf')
};
}
}@Module({
imports: [
NestCasbinModule.registerAsync({
useClass: CasbinConfigService
}),
],
controllers: [],
providers: [],
})
export class AppModule {}
```## Pre 2.0.0 which supports only mongodb adapter
### Installation```bash
$ yarn install nestjs-casbin-mongodb
```### Setup module
```typescript
import { Module } from '@nestjs/common';
import { NestCasbinModule } from 'nestjs-casbin-mongodb';
import { join } from 'path';@Module({
imports: [
NestCasbinModule.forRoot({
uri: 'mongo://localhost:27017',
casbinModelPath: join(__dirname, './rbac_model.conf'),
collectionName: 'roles',
databaseName: 'my-db-name',
}),
],
controllers: [],
providers: [],
})
export class AppModule {}```
## License
This project is [MIT licensed](LICENSE).