Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 34
  1. #1

    Associazione multipla permessi visualizzazione news

    Salve ragazzi buongiorno.

    Ho un'applicazione dove gli utenti che si registrano possono avere la possibilità di visualizzare tre livelli di news:
    Socio fondatore
    Socio
    Iscritto

    Devo dare la possobilità di scelte multiple, per esempio un'utente può visualizzare le sole news degli iscritti e un'altro quelle del socio fondatore e degli iscritti.

    Io ho imòostato il db in questo modo:

    ho una tabella iscritti dove oltre i campi dei dati personali ho anche tre campi check (si/no):
    socioFondatore
    socio
    iscritto.

    Stessa cosa per le news
    Ho una teballa dove oltre a titolo, data e messaggio ho tre campi check (si/no)
    socioFondatore
    socio
    iscritto.

    Io vorrei fare questo:
    Utente 1 vede le news del socio fondatore e dgli iscritti

    Utente 2 vede solo le news degli iscritti

    Utente 3 vede le news del socio e degli iscritti

    Utente 4 vede tutte le categorie di news.

    E così via

    Il mio ragionamento è stato questo.
    Assegno i livelli di visibiltà news all'utente e poi estraggo i record dalle news che corrispondono ai livelli dell'utente appena filtrato.
    All'atto pratico giustamente però si verifica questo:

    Utente 1 ha i permessi di visualizzazione su socio fondatore e iscritti

    Utente 2 ha i permessi iscritti

    Inserisco una news con i permessi di visualizazione solo su iscritti.

    Se si logga l'utente 2 la news la vedrà perchè i permessi tra di loro corrispondono.

    Se si logga l'utente 1 non la vedrà perchè quest'ultimo ha anche il permesso di visualizzazione delle news dei soci.

    Come posso fare in modo che anche l'utente 1 visualizzi la news?

    Grazie a tutti in anticipo
    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non so come hai fatto la query che consente la visualizzazione ma devi usare una OR sui livelli di accesso.

    Roby

  3. #3
    Questo e il codice:
    codice:
    <%
    Dim rsRiconosciUtente__MMColParam
    rsRiconosciUtente__MMColParam = "1"
    If (Request.QueryString("username") <> "") Then 
      rsRiconosciUtente__MMColParam = Request.QueryString("username")
    End If
    %>
    <%
    Dim rsRiconosciUtente
    Dim rsRiconosciUtente_cmd
    Dim rsRiconosciUtente_numRows
    
    Set rsRiconosciUtente_cmd = Server.CreateObject ("ADODB.Command")
    rsRiconosciUtente_cmd.ActiveConnection = MM_associazioneDanielaDiCastro_STRING
    rsRiconosciUtente_cmd.CommandText = "SELECT * FROM iscritti WHERE email = ?" 
    rsRiconosciUtente_cmd.Prepared = true
    rsRiconosciUtente_cmd.Parameters.Append rsRiconosciUtente_cmd.CreateParameter("param1", 200, 1, 255, rsRiconosciUtente__MMColParam) ' adVarChar
    
    Set rsRiconosciUtente = rsRiconosciUtente_cmd.Execute
    rsRiconosciUtente_numRows = 0
    %>
    <%
    Dim socioFondatore, socio, iscritto, pubblico
    socioFondatore = rsRiconosciUtente("socioFondatore")
    socio = rsRiconosciUtente("socio")
    iscritto = rsRiconosciUtente("iscritto")
    pubblico = rsRiconosciUtente("pubblico")
    
    %>
    <%
    Dim rsElencoNews
    Dim rsElencoNews_cmd
    Dim rsElencoNews_numRows
    
    Set rsElencoNews_cmd = Server.CreateObject ("ADODB.Command")
    rsElencoNews_cmd.ActiveConnection = MM_associazioneDanielaDiCastro_STRING
    rsElencoNews_cmd.CommandText = "SELECT * FROM attivita WHERE stato = True AND socioFondatore = " & socioFondatore & " OR socio = " & socio & " OR iscritto = " & iscritto & " AND pubblico = " & pubblico & "" 
    rsElencoNews_cmd.Prepared = true
    
    Response.Write rsElencoNews_cmd.CommandText
    
    Set rsElencoNews = rsElencoNews_cmd.Execute
    rsElencoNews_numRows = 0
    
    %>
    Facendo così però in questo modo tutti vedono tutto.

    Perchè cmq ogni news ha lameno un flag.
    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    WHERE stato = True AND pubblico = " & pubblico & " AND (socioFondatore = " & socioFondatore & " OR socio = " & socio & " OR iscritto = " & iscritto & ")"
    Roby

  5. #5
    Ho provato ma è sempre la stessa cosa.

    tutti vedono tutte le news
    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

  6. #6
    Stavo pensando a una istruzione "if" che in base ai permessi attribuiti all'utente visualizza determinate news.

    Ma poichè abbiamo molteplici possibilità di scelta alla fine tra i permessi sugli utenti e i permessi sulle news è quasi impossobile prevederle tutte.

    Avete per caso altri suggerimenti?



    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi stampare la query e provarla nel db.

    Roby

  8. #8
    Ecco la query stampata di un'utente che è autorizzato a leggere le sole news degli iscritti:

    codice:
    SELECT * FROM attivita WHERE stato = True AND pubblico = False AND (socioFondatore = False OR socio = False OR iscritto = True)
    Con "OR" lui vede sia quelli dove iscritto è uguale a True ma anche le altre dove i permessi sono settati su False.

    Le vede tutte in questa maniera.

    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

  9. #9
    Praticamente la query delle attività mi deve estrarre solo i record in cui i parametri "socioFondatore" oppure "socio" oppure iscritti è uguale a "True".

    Se non è uguale a True il paramentro non deve essere preso in considerazione nemmeno come valor False altrimenti torno al punto in cui mi visualizza tutte quante le news.

    Come faccio però a non prendere in considerazione un determinato parametro che non è fisso ma varia a seconda della situazione?

    <a href="http://www.robertodidonato.it" target="_blank">Roberto Di Donato</a>

  10. #10
    Originariamente inviato da bibuz
    Praticamente la query delle attività mi deve estrarre solo i record in cui i parametri "socioFondatore" oppure "socio" oppure iscritti è uguale a "True".

    Se non è uguale a True il paramentro non deve essere preso in considerazione nemmeno come valor False altrimenti torno al punto in cui mi visualizza tutte quante le news.
    hai mai preso in considerazione l'idea che visto che TUTTE le opzioni debbono essere True debbano andare in AND e non in OR?

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 © 2025 vBulletin Solutions, Inc. All rights reserved.