salvataggio db da utente con permessi limitati  Risolto!

Come utilizzare gli script. Automatizzare gli archivi. Utilizzo dei pulsanti

Moderatore: Moderatori

Bloccato
Franco11944
Messaggi: 26
Iscritto il: mercoledì 2 novembre 2011, 12:49

salvataggio db da utente con permessi limitati

Messaggio da Franco11944 » lunedì 24 ottobre 2016, 23:08

Salve a tutti.
Un problema che per me non è molto chiaro ed è questo.
Ho creato un db a cui possono accedere tramite un login sia con l'account l'admin con tutti i privilegi disponibili, sia con un account chiamato utilizzatore, questo però con con privilegi parzialmente limitati.
Quando ho stabilito i privilegi, nella scheda "MODIFICA SET DI PRIVILEGI" ho settato "comandi menù disponibili" come minimo perchè non voglio che l'utilizzatore possa accedere ad alcuni comandi dal menù principale, quale ad esempio "cancella record", ricerche, nuovo record, ecc.
Il data base funziona correttamente, l'unica cosa che non capisco è questa:
Ho creato un pulsante "termina" che esegue uno script di questo tipo: "crea una copia con nome" e "Esci dall'applicazione"
Quando il db è loggato con "admin" (account senza limitazioni), tutto funziona correttamente. Quando decido di uscire, clicco sul pulsante creato "termina"; si apre una finestra che mi chiede con che nome voglio salvare la copia. Quindi dopo la scelta del nome e cliccando su OK, l'applicazione si chiude e viene creata una copia di sicurezza del db. Quando riapro il db è tutto corretto ovvero posso decidere con quale account loggarmi.
Quando il Db è loggato con "utilizzatore, l'iter di chiusura e salvataggio copia di sicurezza è lo stesso di come quando si esce con Admin. Quando però si riapre il db, misteriosamente si scopre che l'account "utilizzatore" e stato cancellato dal set di sicurezza. Non c'è più. Si può accedere solo con l'account Admin.
Se invece si esce premendo il bollino rosso della finestra dell'applicazione (con l'account Utilizzatore loggato) quando si riapre il db l'account Utilizzatore non viene cancellato, in pratica è come se si fosse usciti quando si è loggati con Admin. Ovviamente in questo caso non viene creata la copia di sicurezza che mi serve, per cui devo creare un duplicato passando attraverso il Finder (cosa scomoda perchè non tutti gli "Utilizzatori" che utilizzano il db si preoccupano di fare un duplicato).
Sperando di essere stato chiaro, chiedo se qualcuno di voi può cortesemente fornirmi una spiegazione ed eventualmente propormi una soluzione.
Grazie a tutti e buon lavoro.

Avatar utente
fabio.beri
Messaggi: 1968
Iscritto il: sabato 4 ottobre 2014, 16:24
Versione FileMaker: 2023
Sistema operativo: Win/Mac

Re: salvataggio db da utente con permessi limitati

Messaggio da fabio.beri » martedì 25 ottobre 2016, 9:36

Salve Franco.

Per prima cosa vorrei tranquillarti dicendoti che non esiste nessuna funzione che autonomamente cancelli un account.
Secondo, verificherei se il file dove è presente solo l'account admin è quello generato dalla copia oppure è quello che HA generato la copia.
Terzo, è normale che premendo sul pulsantino di chiusura non venga eseguito lo script del pulsante "termina" a meno che non si abbia creato un trigger con esecuzione alla chiusura della finestra.
Quarto, verificherei se da qualche parte, negli script è stato inserito un comando di eliminazione account (anche se nel tuo post hai script che si elimina non l'account ma il set di sicurezza.

Scusami se in mezzo, ho inserito qualcosa di simile a domande, però di certo i privilegi non si eliminano da soli e vorrei capire meglio.

Ci faresti capire quale FileMaker usi?
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19

Omnia Studio

-----------------------------------------
http://tinyurl.com/omniagest2024

Franco11944
Messaggi: 26
Iscritto il: mercoledì 2 novembre 2011, 12:49

Re: salvataggio db da utente con permessi limitati

Messaggio da Franco11944 » martedì 25 ottobre 2016, 12:30

Grazie per la sollecita risposta.
In proposito preciso quanto segue:
Punto terzo. Sono consapevole che "chiudendo il file" dal pulsante di chiusura non venga eseguito lo script termina. Preciso solo che chiudendo il file da quel pulsante, sia che sia loggato come Admin o come Utilizzatore, l'account Utilizzatore non scompare.
La scomparsa avviene solo quando "termino l'applicazione" e non quando "salvo il file" e rimango nell'applicazione.
Punto secondo. Il file dove è presente solo l'account Admin è quello che ha generato la copia (loggato come Utilizzatore).
Punto quattro. In alcuni script c'è l'eliminazione dell'account e lo script è utilizzato in fase di login oppure di cambiamento di account tramite "Nuovo accesso" è così strutturato:

Elimina account [nome account: campo a]
Imposta campo [campo a;get(nome account)]

Questa istruzione è presente anche in altri script, ma vengono utilizzati per altri scopi (per filtrare alcuni record) e non quello si salvare una copia o terminare l'applicazione.

Inoltre ho notato che quando eseguo lo script dal pulsante Termina, automaticamente se sono loggato come Utilizzatore, il nome evidenziato (c'è un campo dove appare il nome dell'account) cambia in Admin, quindi lo script prosegue, mi fa fare una copia di sicurezza con un nuovo nome e quindi termina l'applicazione.
Ribadisco che quando si riapre il file l'account Utilizzatore è stato eliminato. Esiste solo Admin e Ospite (quello di base, che l'ho inibito).
In buona sostanza, se il file viene "chiuso", sia come Admin sia come Utilizzatore o tramite il pulsante di chiusura del file, tutto funziona regolarmente.
Se invece si termina l'applicazione, con Admin, tutto è regolare e non si perde nessun account, mentre se lo si termina quando si è loggato come Utilizzatore, l'account Utilizzatore viene eliminato.
Per me rimane un mistero

Avatar utente
fabio.beri
Messaggi: 1968
Iscritto il: sabato 4 ottobre 2014, 16:24
Versione FileMaker: 2023
Sistema operativo: Win/Mac

Re: salvataggio db da utente con permessi limitati

Messaggio da fabio.beri » martedì 25 ottobre 2016, 12:59

Di niente. Però perdonami se ora la mia attenzione si è focalizzata su altre tue parole...

Spiego cosa intendo:
Leggo che per fare un nuovo accesso tu abbia istruito FileMaker ad "eliminare l'account"...

per quale incredibile motivo?????
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19

Omnia Studio

-----------------------------------------
http://tinyurl.com/omniagest2024

Avatar utente
fabio.beri
Messaggi: 1968
Iscritto il: sabato 4 ottobre 2014, 16:24
Versione FileMaker: 2023
Sistema operativo: Win/Mac

Re: salvataggio db da utente con permessi limitati

Messaggio da fabio.beri » martedì 25 ottobre 2016, 13:11

Scusami, rileggendo la mia risposta, mi rendo conto che non ha senso fare una domanda del genere. Quindi:
  • 1. Bene, creare un'utenza per ogni utente o per tipologia di utenza
    2. Male, eliminare l'utente solamente per la necessità di fare il login con altri permessi. Per fare ciò è sufficiente utilizzare la funzione NUOVO ACCESSO.
    3. Vado per deduzione quindi, che sei ha gestito in questo modo il cambio di utenza, sicuramente uno script con eliminazione dell'utente viene lanciato e crea questo problema. Ti invito a ri-ragionare sui tuoi script, perché fai ragionare i tuoi script erroneamente.
    4. Poi c'è "campo a"... Cos'è un globale? a cosa ti serve definire dentro un campo l'account corrente? Puoi dire a FileMaker, se modifichi o crei un record di scriversi quale utente l'ha fatto... campo a (che forse è un esempio buttato qui sul forum) non è un nome che può far capire a qualcuno di cosa si tratta. Utilizza un giusto modo di nominare i campi e vedrai che ne trarrai benefici in futuro.
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19

Omnia Studio

-----------------------------------------
http://tinyurl.com/omniagest2024

Franco11944
Messaggi: 26
Iscritto il: mercoledì 2 novembre 2011, 12:49

Re: salvataggio db da utente con permessi limitati

Messaggio da Franco11944 » martedì 25 ottobre 2016, 14:42

Mi rendo conto che sono stato impreciso.
L'utilizzo del db deve essere consentito per il momento a soli due account: Admin (con tutti i privilegi) e Utilizzatore con privilegi limitati.
Ho quindi impostato l'opzione file... "script trigger" con esegui script "login".
Nel data base c'è un campo (globale) chiamato "nome account" che si compila automaticamente tramite l'esecuzione dello script "Login" che in origine prevedeva l'istruzione:
Imposta campo[nome account;get(nome account)]
e un'altro script (sempre in origine), chiamato "login B" da utilizzare una volta entrato nel db qualora decidessi di cambiare account:
Nuovo accesso
Imposta campo[nome account;get(nome account)]

Quindi potevo loggarmi a mio piacere o come account o come utilizzatore.
Succedeva però che talvolta il campo "nome account" non si modificava o rimaneva senza valori.
Aggiungendo agli script sopracitati l'istruzione "Cancella account", tutto funzionava a dovere.
Rivedendo però la struttura di di partenza in base ai tuoi suggerimenti, mi sono accorto che il campo "nome utente" (destinato a ricevere il nome dell'account tramite l'istruzione dello script "login" o "Login B" - Imposta campo[nome account;get(nome account)] -, non era un campo globale.
Ho quindi impostato questo campo come "globale" e ho tolto da tutti gli script "elimina account" e ora il campo "nome account" funziona perfettamente.
Ho quindi ristrutturato lo script "termina" come segue:
Salva copia con nome [copia]
esci dall'applicazione.

ora il punto è questo:
Se eseguo questa istruzione quando sono loggato come Admin, tutto funziona correttamente (mi crea la copia di backup - senza eliminare l'account Utilizzatore -)
Se la eseguo quando sono loggato come Utilizzatore, mi appare una finestra che mi dice: "Il file xy non può essere creato su questo disco. Usare un altro nome, liberare lo spazio sul disco, togliere la protezione, usare un altro disco", quindi dando l'OK termina l'applicazione senza creare la copia di backup.
Avendo molto spazio libero sul disco, presumo pertanto sia una questione di permessi, ma non saprei dove andare a cercare per sistemarli per autorizzare la creazione di una copia all'account Utilizzatore (Fermo restando tutte le altre restrizioni).
Devi avere pazienza, ma come hai sicuramente capito, sono un principiante autodidatta per cui forse faccio un po' di confusione.

Avatar utente
fabio.beri
Messaggi: 1968
Iscritto il: sabato 4 ottobre 2014, 16:24
Versione FileMaker: 2023
Sistema operativo: Win/Mac

Re: salvataggio db da utente con permessi limitati

Messaggio da fabio.beri » martedì 25 ottobre 2016, 15:05

Ok. Ci stai lavorando. Molto bene.

Come vedi, cambiamo tema. Prima parlavamo di permessi FileMaker e ora si parla di permessi di scrittura su disco. Benissimo

Non so se il "salva copia con nome" è CON oppure SENZA ESECUZIONE FINESTRA, quindi:
1. Se è CON vuol dire che FileMaker chiede all'utente di digitare il nome del file e il posto dove l'utente vuole salvare il file
2. Se è SENZA, vuol dire che devi impostare un percorso fisso oppure proveniente da una variabile. Se questo percorso è sbagliato, il risultato sarà il messaggio di errore che tu hai riportato nel tuo post.

In emtrambi i casi, i permessi disco si danno al sistema operativo e NON al FileMaker, quindi cambia il percorso e prova a scrivere sul desktop oppure nella cartella documenti dove, da sistema operativo, hai sicuramente i permessi per scrivere.
Fabio Beri
Moderatore FMPro.it
Sviluppatore OmniaGest 5 - FileMaker 15/16/17/18/19

Omnia Studio

-----------------------------------------
http://tinyurl.com/omniagest2024

Franco11944
Messaggi: 26
Iscritto il: mercoledì 2 novembre 2011, 12:49

Re: salvataggio db da utente con permessi limitati  Risolto!

Messaggio da Franco11944 » martedì 25 ottobre 2016, 15:07

RISOLTO!!!
Grazie e buon lavoro

Bloccato