feat: reverse shares (#86)
* add first concept * add reverse share funcionality to frontend * allow creator to limit share expiration * moved reverse share in seperate module * add table to manage reverse shares * delete complete share if reverse share was deleted * optimize function names * add db migration * enable reverse share email notifications * fix config variable descriptions * fix migration for new installations
This commit is contained in:
29
backend/src/share/guard/createShare.guard.ts
Normal file
29
backend/src/share/guard/createShare.guard.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import { ExecutionContext, Injectable } from "@nestjs/common";
|
||||
import { JwtGuard } from "src/auth/guard/jwt.guard";
|
||||
import { ConfigService } from "src/config/config.service";
|
||||
import { ReverseShareService } from "src/reverseShare/reverseShare.service";
|
||||
|
||||
@Injectable()
|
||||
export class CreateShareGuard extends JwtGuard {
|
||||
constructor(
|
||||
configService: ConfigService,
|
||||
private reverseShareService: ReverseShareService
|
||||
) {
|
||||
super(configService);
|
||||
}
|
||||
|
||||
async canActivate(context: ExecutionContext): Promise<boolean> {
|
||||
if (await super.canActivate(context)) return true;
|
||||
|
||||
const reverseShareTokenId = context.switchToHttp().getRequest()
|
||||
.cookies.reverse_share_token;
|
||||
|
||||
if (!reverseShareTokenId) return false;
|
||||
|
||||
const isReverseShareTokenValid = await this.reverseShareService.isValid(
|
||||
reverseShareTokenId
|
||||
);
|
||||
|
||||
return isReverseShareTokenValid;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user