checkPermission method

bool checkPermission({
  1. List<String>? permissions,
  2. String? permission,
  3. String logicalOp = 'AND',
})

Implementation

bool checkPermission({List<String>? permissions, String? permission, String logicalOp = 'AND'})
{
  UserModel user = userConnected;
  List<String> currentPermissions = user.permissions;
  if (user.role == Constant.GS_DEV) {
    return true;
  }
  if (currentPermissions.isEmpty) {
    return false;
  }
  if (permissions==null && permission==null) {
    return false;
  }
  bool hasPermission = false;
  if (permissions!=null && permissions.isNotEmpty) {
    for (final permission in permissions) {
      bool permissionFound = currentPermissions.contains(permission);

      if (permissionFound) {
        hasPermission = true;
        if (logicalOp == 'OR') {
          break;
        }
      } else {
        hasPermission = false;
        if (logicalOp == 'AND') {
          break;
        }
      }
    }
    return hasPermission;
  }
  if (permission!=null && permission.isNotEmpty) {
    return currentPermissions.contains(permission);
  }
  return hasPermission;
}