Comments (3)
Any solutions?
from nestjs-telegraf.
I've fixed this problem this way. May be useful to someone else?
safeguard.interceptor.ts
export abstract class SafeGuardInterceptor
implements NestInterceptor, CanActivate
{
abstract canActivate(
context: ExecutionContext,
): boolean | Promise<boolean> | Observable<boolean>;
async intercept(context: ExecutionContext, next: CallHandler<any>) {
let result = false;
const returnValue = this.canActivate(context);
if (isObservable(returnValue)) {
returnValue.subscribe((value) => {
if (value) {
return next.handle();
} else {
return of(undefined);
}
});
return of(undefined);
} else {
result = await returnValue;
if (result) {
return next.handle();
}
return of(undefined);
}
}
}
type Class<I, Args extends any[] = any[]> = new (...args: Args) => I;
export const UseSafeGuards = (...arr: Class<SafeGuardInterceptor>[]) =>
UseInterceptors(...arr);
admin.guard.ts
@Injectable()
export class AdminGuard extends SafeGuardInterceptor {
canActivate(
context: ExecutionContext,
): boolean | Promise<boolean> | Observable<boolean> {
const telegraf = context.getArgByIndex<TelegrafContext>(0);
// user is a property injected by some middleware, any logic can be used
return !!telegraf.user?.isAdmin;
}
}
And used it like other Guards, for updates
:
@Update()
@UseSafeGuards(AdminGuard)
export class AdminUpdate {
// commands or other stuff here
}
from nestjs-telegraf.
Related Issues (20)
- Cannot go backwards in wizard
- Incorrect bot shutdown HOT 1
- Error on lazy TelegrafModule import
- Cannot install on Nest v10 HOT 4
- connect to the same bot from another app HOT 1
- Doesn't work middleware function (blocked other middlewares HOT 1
- How to get callback_data from context HOT 1
- Handle callback_query HOT 2
- Issue with middlewares HOT 1
- Not working properly in Nestjs 10.0.0 version HOT 5
- Multiple Dynamic Bot HOT 1
- pre_checkout_query & successful_payment doesn't work HOT 1
- Bot Error Handling in NestJS Application
- changing bot token while application is running
- scene is undefined in middleware
- How to use wizard with composer? HOT 1
- Webhook(s) for multiple telegram bots HOT 1
- Multiple bots - @Start command issue
- API 7.0 Support - Reactions HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nestjs-telegraf.