principalHasPermission method

  1. @override
bool principalHasPermission(
  1. Map<String, dynamic> entity,
  2. DbPrincipal principal,
  3. String sharePermission
)
override

Implementation

@override
bool principalHasPermission(
  Map<String, dynamic> entity,
  DbPrincipal principal,
  String sharePermission,
) {
  var shares = ((entity['meta'] ?? {})['shares'] ?? []) as List;

  final hasShare = shares.any(
    (s) =>
        s['userKey'] == principal.userKey &&
        (s['actions'] ?? []).contains(sharePermission),
  );

  return hasShare;
}