loadSecurityDefinition method

dynamic loadSecurityDefinition()

Implementation

loadSecurityDefinition() {
  server.session().transaction((tr) async {
    for (var module in modules) {
      var access = [];
      var hasConstraint = false;

      for (var service in module.serviceList) {
        if (service.accessTokens.isNotEmpty) {
          hasConstraint = true;
          access.add({
            'id': service.name,
            'nombre': service.description,
            'disponible': service.accessTokens
                .map((e) => {'id': e, 'display': e})
                .toList(),
            'accesos': [],
          });
        }
      }
      if (!hasConstraint) {
        continue;
      }
      //  cargando modulos
      await tr.request("""
        insert into fn.modulo(id,nombre,accesos)
        select @id,@nombre,@accesos
        on conflict (id) do update set accesos=@accesos,nombre=@nombre
      """, {
        'id': module.name,
        'nombre': module.description,
        'accesos': jsonEncode(access)
      });
    }
  });
}