Sto lavorando per consentire ai miei utenti di creare il proprio set di regole per i dati in arrivo. Tutti i dati riportati di seguito sono esempi di dati fittizi e non in relazione al nostro prodotto. Esempio di una regola (ce ne possono essere molti):
CONDITIONS: (IF)
1) title = 'some*'
2) user = 'john'
OUTCOME: (THEN)
1) e-mail me
2) deny request
quindi nella regola precedente se viene fatta una richiesta input?title='something'&user='john'&...
negherebbe la richiesta e invierà un'e-mail all'utente poiché corrisponde alla condizione. se la richiesta è input?title='blah'&user='john'
, gli consentirebbe di passare poiché non corrisponde a nessuna regola.
Ho trovato due modi per farlo, ma non ne sono felice e spero che qualcun altro possa avere una soluzione migliore.
Primo metodo
- Quando un utente crea una regola genera un file temporaneo in cui scrive tale regola in un linguaggio di programmazione delle istruzioni IF THEN
- Quando arriva una nuova richiesta, passa attraverso la lista delle regole di quell'utente nel linguaggio di programmazione e fa le azioni appropriate
Secondo metodo
- Quando arriva una nuova richiesta, viene scritta in un db
- Tiriamo tutte le condizioni dal db per regole diverse ed eseguiamo una query su quella riga per vedere se corrisponde alle condizioni. Se lo fa, passiamo i risultati allo script per fare il resto
Non sono contento di nessuno dei due giorni. Qualsiasi intuizione o aiuto qui è molto apprezzato.