ΠάρηςΓ Δημοσ. 3 Σεπτεμβρίου 2009 Δημοσ. 3 Σεπτεμβρίου 2009 Γεια σας... Σχεδιάζω μια εφαρμογή με java (jsp) και ψαχνω να βρω πιος ειναι ο καλυτερος τροπος για κατι που θελω.. Ειναι περισσότερο θεωριτικο θεμα παρα γλώσσας.. Εστω οτι αποθηκεύουμε για καθε χρήστη οταν ειναι login στο session του κάποιες πληροφορίες.Αναμεσα σε αυτες τις πληροφορίες βρίσκονται και πληροφορίες για τα δικαιωματα του..Αν ο διαχειριστής τα αλλαξει πως γινεται να ενημερωθουν οι αλλαγες ; Θα ηταν απλο εαν διαβαζε καθε φορα τα δικαιώματα απο τη βαση αλλα αυτο τρώει πιστευω bandwidth και πορους χωρις λογο. Η μονη λυση που σκεφτηκα ειναι ειτε να εχω ενα timestamp στο καθε session και να ελεγχει αν ειναι παλαιοτερο απο ενα αλλο timestamp το οποιο θα ενημερώνεται οταν γινονται αλλαγες. Υπάρχει καμια αλλη ιδέα;Σε php ξερω πως superglobal δικες σου δεν γινεται να φτιάξεις...σε java γινεται..
fromaz Δημοσ. 3 Σεπτεμβρίου 2009 Δημοσ. 3 Σεπτεμβρίου 2009 Πρακτικά, δεν υπάρχει άλλος τρόπος. Τα δικαιώματα του λογαριασμού ανήκουν στην καρτέλα του και από εκεί πρέπει να διαβάζονται. Συνεπώς, το query είναι αναπόφευκτο. Θεωρητικά υπάρχει και άλλος τρόπος, όχι όμως αυτός που λες γιατί θα σε ...δαγκώσει. Ο "σωστός" τρόπος είναι η εφαρμογή του observer pattern. Δηλαδή, ο κώδικας που ενημερώνει τον πίνακα "users" θα ενημερώνει και το "sessions", κάνοντας invalidate όποτε πρέπει. Χρησιμοποιώ εισαγωγικά καθώς στην πράξη προκύπτουν άλλα θέματα. Άλλο πράγμα το Web και άλλο το desktop...
ΠάρηςΓ Δημοσ. 3 Σεπτεμβρίου 2009 Μέλος Δημοσ. 3 Σεπτεμβρίου 2009 Ειχα σκεφτει αυτο το τροπο αλλα πρακτικα δεν ξερω πως μπορει να γινει αυτο...Στην php για παραδειγμα ξερω πως ειναι φασαρία να βρεις τροπο να ενημερώσεις ολα τα session..Στην java δεν ξερω πως θα μπορουσε να γινει ---------- Το μήνυμα προστέθηκε στις 18:16 ---------- Τελικα σκεφτηκα πως με session listener μπορω να ξερω ποτε ψοφησε ενα session...Ετσι νομιζω πως μπορω να εφαρμόσω το observer pattern. Δηλαδη οταν κανει login ενας χρηστης φτιαχνω κανονικα οσα χρειάζεται καθως και το αντικειμενο με τα δικαιωματα.Και επισης το δηλώνω στον Observer ο οποίος θα ειναι δηλωμένος στο Application. Ετσι οταν θα γινεται αλλαγη θα χρησιμοποιω τον observer για να ενημερώσει τα δικαιωματα εκει που πρέπει..Σωστά;
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.