111 contact[at]joomla[dot]gr

Ανάλυση του ACL (Access Control List) με παράδειγμα χρήσης

Αξιολόγηση Χρήστη: 5 / 5

Αστέρια ΕνεργάΑστέρια ΕνεργάΑστέρια ΕνεργάΑστέρια ΕνεργάΑστέρια Ενεργά
 

Το Joomla υποστηρίζει εγγενώς την λειτουργία χρηστών με δικαιώματα. Είναι ένα από τα δυνατότερα σημεία του γενικότερα και ένα σημείο αναφοράς, ένας άσσος στο μανίκι θα λέγαμε, στην αιώνια μάχη μεταξύ Joomla και Wordpress.

Παρακάτω θα αναλύσουμε τον τρόπο που θα μπορέσετε να χειριστείτε τη συγκεκριμένη δυνατότητα κάνοντας τη διαχείριση ενός ιστότοπου ευκολότερη.

Για τις ανάγκες του tutorial θα χρησιμοποιήσουμε ένα νέο Joomla site έκδοσης 3.6.2.

Λίγα λόγια για τα δικαιώματα χρηστών

Πολλές φορές, οι χρήστες πρέπει να ομαδοποιηθούν σε κάποιες κατηγορίες ώστε να αποκτήσουν πρόσβαση σε συγκεκριμένους τομείς του δικτυακού τόπου.

Χαρακτηριστικά παραδείγματα θα αναφέραμε μια ομάδα μαθητών σε ένα σχολικό site η οποία θα έχει πρόσβαση σε κάποιο συγκεκριμένο τομέα του ιστότοπου όπου θα μπορούσαν να βλέπουν ασκήσεις που αφορούν μόνο αυτούς.

Ή ένα εταιρικό site όπου οι υπάλληλοι θα έχουν πρόσβαση σε μια σελίδα με αναρτήσεις εσωτερικού περιεχομένου της εταιρείας όπου δε χρειάζεται να είναι προσβάσιμες από τους επισκέπτες.

Ας ξεκινήσουμε λοιπόν να αναλύσουμε πως μπορεί να πετύχουμε κάτι τέτοιο.

Το μοντέλο χρηστών του Joomla χωρίζεται σε ομάδες χρηστών και επίπεδα πρόσβασης.

Η λογική είναι η εξής: Φτιάχνουμε όσες ομάδες θέλουμε, και έπειτα ορίζουμε επίπεδα πρόσβασης σε αυτές. Με μια πρώτη ματιά ίσως σας μπερδεύει, αλλά ας δούμε στην πράξη το παράδειγμα με τους μαθητές που αναφέραμε παραπάνω.

Ομάδες Χρηστών

Η βασική οργάνωση ομάδων χρηστών που θα συναντήσει ένας διαχειριστής σε μια νέα εγκατάσταση Joomla είναι η παρακάτω:

  • Public

    • Guest

    • Manager

      • Administrator

    • Registered

      • Author

        • Editor

        • Publisher

    • Super Users

Όπως βλέπουμε στη λίστα, όλες οι ομάδες χρηστών βρίσκονται κάτω από την ομάδα Public.

Από κει και πέρα έχουμε υποομάδες ιεραρχικά όπου κάθε μια έχει ένα σημαντικό ρόλο. Μπορούμε να φτιάξουμε απεριόριστες ομάδες. Στην προκειμένη περίπτωση και για χάρη του παραδείγματος με τους μαθητές που αναφέραμε παραπάνω θα φτιάξουμε μια νέα ομάδα με όνομα «Students» και θα την ορίσουμε οτι θα βρίσκεται ιεραρχικά κάτω από τους «Registered». Ο λόγος που την τοποθετούμε κάτω από τους «Registered» είναι γιατί όταν φτιάχνουμε μια ομάδα και την ορίσουμε ιεραρχικά κάτω από κάποια άλλη, αυτομάτως κληρονομεί και όλα τα δικαιώματα του γονέα.

Οπότε αν για παράδειγμα ορίζαμε τους μαθητές ως υποομάδα του «Administrator» πρακτικά θα τους δίναμε πρόσβαση σε όλο τον ιστότοπο άθελά μας. Καλό είναι λοιπόν να είστε προσεκτικοί ως προς το κομμάτι της καταχώρησης για να μη βρεθείτε «κλειδωμένοι» έξω από το ίδιο σας το σύστημα. Το να ορίσετε μια ομάδα κάτω από τους «Registered» χρήστες είναι αρκετά ασφαλές διότι οι «Registered» χρήστες δεν έχουν κάποιο ιδιαίτερο δικαίωμα στον δικτυακό τόπο.

Το αποτέλεσμα που θα δούμε στη λίστα των ομάδων θα είναι αυτό:

  • Public

    • Guest

    • Manager

      • Administrator

    • Registered

      • Students

      • Author

        • Editor

        • Publisher

    • Super Users

 

Το επόμενο βήμα είναι να ορίσουμε τα επίπεδα πρόσβασης.

Επίπεδα Πρόσβασης

Τα βασικά επίπεδα πρόσβασης είναι:

Public

Public

Guest

Guest

Registered

Manager, Registered, Super Users

Special

Author, Manager, Super Users

Super Users

Super Users

Όπως βλέπουμε στον παραπάνω πίνακα υπάρχουν 2 στήλες. Η πρώτη στήλη είναι τα επίπεδα πρόσβασης και η δεύτερη στήλη είναι οι ομάδες χρηστών που ανήκουν στο κάθε επίπεδο.

Εμείς θα φτιάξουμε άλλο ένα επίπεδο, το οποίο θα ονομάσουμε «Student Group» και σε αυτό θα δηλώσουμε ότι πρόσβαση θα έχει η ομάδα «Students» που ορίσαμε προηγουμένως.

Σημείωση: Καλό θα ήταν εκτός από την ομάδα Students, να ορίσετε οτι στο Student Group ανήκει η ομάδα Super User ή/και Administrator, για να μπορείτε κι εσείς ως διαχειριστής να δείτε το ανάλογο αποτέλεσμα.

Χρήστες

Οι ομάδες και τα επίπεδα πρόσβασης είναι έτοιμα, οπότε είμαστε έτοιμοι να προχωρήσουμε στο κομμάτι του ορισμού χρηστών.

Πλέον σε κάθε χρήστη που είναι μαθητής, στην καρτέλα «Συνδεδεμένες ομάδες χρηστών» θα πρέπει να βάλουμε και ένα τικ στην ομάδα «Students» ώστε να του ορίσουμε το συγκεκριμένο ρόλο με ότι δικαιώματα θα αποκτήσει αυτός στην πορεία.

Οργάνωση περιεχομένου με βάση τα επίπεδα πρόσβασης.

Έχοντας κάνει όλα τα παραπάνω βήματα είμαστε σε θέση να προχωρήσουμε στην οργάνωση του περιεχομένου μας.

Όπως θα έχετε παρατηρήσει όταν δημιουργείτε ένα νέο μενού, ένα νέο άρθρο, μια κατηγορία κλπ, υπάρχει ένα πεδίο με τίτλο «Επίπεδο Πρόσβασης» το οποίο η προεπιλογή του είναι Public.

Ο λόγος που έχει τη συγκεκριμένη τιμή είναι γιατί θέλουμε όλοι οι επισκέπτες, συνδεδεμένοι ή μη, να έχουν πρόσβαση σε κάθε είδους περιεχόμενο συναντήσουν στο site.

Στο ιδιαίτερο παράδειγμά μας όμως, όπως είπαμε θέλουμε οι μαθητές να έχουν ένα χώρο που θα βλέπουν συγκεκριμένα άρθρα μη προσβάσιμα στο ευρύ κοινό.

Αυτό πλέον μπορεί να γίνει με πολλούς και διάφορους τρόπους ανάλογα με το τι αποτέλεσμα θέλουμε να πετύχουμε.

Μια πρώτη προσέγγιση θα ήταν να φτιάξουμε ένα μενού με τίτλο ΑΣΚΗΣΕΙΣ ΜΑΘΗΤΩΝ όπου θα ορίσουμε ως επίπεδο πρόσβασης το «student group».

Το αποτέλεσμα θα είναι αυτό το μενού να είναι αόρατο σε όλους, εκτός από τους χρήστες της ομάδα «Students».

Από κει και πέρα το μειονέκτημα είναι ότι εφόσον έχουμε αφήσει άρθρα και κατηγορίες ασκήσεων στην ομάδα Public, πρακτικά τα άρθρα είναι δημόσια και ας έχουμε ιδιωτικοποιήσει το μενού. Δηλαδή αν κάποιος χρήστης  «Student» κάνει copy-paste το σύνδεσμο του άρθρου θα μπορεί να το δώσει να το δουν και άτομα εκτός της λίστας.

Γι αυτό το λόγο, θα πρέπει να ορίσουμε ότι και η κατηγορία και τα άρθρα θα έχουν επίπεδο πρόσβασης την ομάδα «Student Group».

Κάθε λειτουργία (Ένθεμα,Πρόσθετο ή Επέκταση) στο Joomla υποστηρίζει τη δυνατότητα ορισμού δικαιωμάτων ώστε να μπορείτε να φέρετε το δικτυακό σας τόπο στο επιθυμητό σημείο.

Ελπίζω να σας φάνηκε χρήσιμο ως διαδικασία και να μας αναφέρετε και εσείς ως χρήστες τρόπους που υλοποιήσατε το μοντέλο χρηστών σε δικές σας δουλειές.

 

Tags: ,