Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 16 su 16
  1. #11
    Quote Originariamente inviata da optime Visualizza il messaggio
    per questa seconda, metti la *articoli in join con i permessi nella select
    intanto ho preparato questa SELECT:


    SEELCT
    idPermesso
    FROM
    permessi
    JOIN gruppi_form_permessi ON (gruppi_form_permessi.idPermesso = permessi.id)
    JOIN gruppi ON (gruppi.id = gruppi_form_permessi.idGruppo)
    JOIN utenti_gruppi ON (utenti.idGruppo = gruppi.idGruppo)
    JOIN utenti ON (utenti.id = utenti_gruppi.idUtente)
    JOIN form ON (form.id = gruppi_form_permessi.idForm)
    WHERE utenti.id='$idUtente' AND form.id='$idForm'
    ORDER BY permessi.id DESC
    LIMIT 0,1

    come devo aggiungere la seconda parte?
    non ho capito se devo fare una seconda query oppure se devo aggiungere una JOIN
    aquatimer2000

  2. #12
    SEELCT
    idPermesso
    FROM
    permessi
    JOIN gruppi_form_permessi ON (gruppi_form_permessi.idPermesso = permessi.id)
    JOIN gruppi ON (gruppi.id = gruppi_form_permessi.idGruppo)
    JOIN utenti_gruppi ON (utenti.idGruppo = gruppi.idGruppo)
    JOIN utenti ON (utenti.id = utenti_gruppi.idUtente)
    JOIN form ON (form.id = gruppi_form_permessi.idForm)
    WHERE utenti.id='$idUtente' AND form.id='$idForm'
    ORDER BY permessi.id DESC
    LIMIT 0,1

    questa è la query che ho scritto,
    per la seconda parte non ho capito se devo scrivere un'altra select o devo aggiungere una join?! ma join come?
    aquatimer2000

  3. #13
    io separerei le due cose: una è la gestione degli accessi alla pagina, una è la gestione dei diritti sugli articoli

  4. #14
    Quote Originariamente inviata da optime Visualizza il messaggio
    io separerei le due cose: una è la gestione degli accessi alla pagina, una è la gestione dei diritti sugli articoli
    ok perfetto, adesso ho capito per bene!

    grazie mille per l'aiuto!!
    aquatimer2000

  5. #15

  6. #16
    in giornata o al massimo domani posto la soluzione, e comunque sto seguendo le indicazioni che mi hai suggerito.
    prima verifico i permessi per la form chiamata in causa, e poi le eventuali eccezioni sui singoli record.

    2 select distinte.
    aquatimer2000

  7. #17
    Quote Originariamente inviata da optime Visualizza il messaggio
    poi facce sape'
    questo è un riepilogo di quanto ho fatto, sicuramente si potrà migliorare:


    [articoli]
    id
    articolo
    idUtenteIns
    idUtenteMod


    [form]
    id
    form


    [gruppi]
    id
    gruppo


    [utenti]
    id
    utente


    [utenti_gruppi]
    id
    idUtente
    idGruppo


    [gruppi_form_permessi]
    id
    idGruppo
    idForm
    idPermesso


    [utenti_form_articoli_permessi]
    id
    idUtente
    idForm
    idArticolo
    idPermesso
    dataInizio (datetime)
    dataFine (datetime)


    [permessi]
    id
    permesso

    codice:
    +-----------------------------------------------------------------------------+
    +                                  permessi                                   +
    +-----------------------------------------------------------------------------+
    + id + permesso                                                               +
    +----+------------------------------------------------------------------------+
    + 1  + sola lettura, accesso negato alle form di inserimento e modifica       +
    +----+------------------------------------------------------------------------+
    + 2  + inserimento ok, modifica abilitata solo per i propri record            +
    +----+------------------------------------------------------------------------+
    + 3  + inserimento ok, modifica abilitata anche per i record altrui           +
    +----+------------------------------------------------------------------------+

    ogni utente, appena creato, appartiene al gruppo "default" che è abbinato a idPermesso="1".


    quando viene chiamata la view di una form di inserimento verifico i permessi a livello di gruppo:

    SELECT
    permessi.id
    FROM
    permessi
    JOIN gruppi_form_permessi ON (gruppi_form_permessi.idPermesso = permessi.id)
    JOIN gruppi ON (gruppi.id = gruppi_form_permessi.idGruppo)
    JOIN utenti_gruppi ON (utenti_gruppi.idGruppo = gruppi.id)
    JOIN utenti ON (utenti.id = utenti_gruppi.idUtente)
    JOIN form ON (form.id = gruppi_form_permessi.idForm)
    WHERE utenti.id='$idUtenteLoggato' AND form.id='$idForm'
    ORDER BY gruppi_form_permessi.idPermesso DESC
    LIMIT 0,1


    quando viene chiamata la view di una form di modifica, oltre alla query precedente, verifico anche le eventuali eccezioni per l'utente sul record da modificare (tranne nel caso in cui l'utente abbia già idPermesso='3' oppure sia l'utente che ha inserito l'articolo (in questi casi, passo subito la view di modifica)):

    SELECT
    permessi.id
    FROM
    permessi
    JOIN utenti_form_articoli_permessi ON (utenti_form_articoli_permessi.idPermesso = permessi.id)
    JOIN articoli ON (articoli.id = utenti_form_articoli_permessi.idArticolo)
    WHERE utenti_form_articoli_permessi.idUtente='$idUtenteL oggato' AND utenti_form_articoli_permessi.idForm='$idForm' AND utenti_form_articoli_permessi.idArticolo='$idArtic olo'


    a questo punto il valore 'idPermessso' più alto ottenuto dalle 2 query, mi stabilisce se posso o non posso visualizzare la form di modifica.
    aquatimer2000

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.