Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

Awesome Lists containing this project

README

        


NestJs Casbin Mongodb




NestJS module for Casbin. Supports all adapters




NPM Version
License
Code Size
Top Language
Top Language

### 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).