library-ts/node/users/permissions/Permission.ts

31 lines
675 B
TypeScript
Raw Normal View History

2025-11-10 17:41:48 +00:00
import { DateMath } from "../../../browser/date/DateMath";
import { ISOTimeStamp } from "../../../browser/date/ISOTimeStamp";
export class Permission
{
id:string;
by:string;
granted:ISOTimeStamp;
expires:ISOTimeStamp;
revokableBy:string[];
static isMatching( permissionID:string, permission:Permission )
{
return permission.id === permissionID && Permission.isValid( permission );
}
static isValid( permission:Permission )
{
let isExpired = true;
let expiresInfo = permission.expires;
if ( ! expiresInfo || DateMath.isExpired( ISOTimeStamp.toDate( expiresInfo ) ) )
{
isExpired = false;
}
return ! isExpired;
}
}