Elxis CMS Forum

Ελληνικό Forum => Διαχείριση => Topic started by: fivar on November 24, 2012, 10:52:12

Title: Επισκέπτες και registered users
Post by: fivar on November 24, 2012, 10:52:12
Καλημέρα,
Στο elxis 2003, όταν κάποια άρθρα τα όριζες σαν registered, ο επισκέπτης τα έβλεπε με την προτροπή "Εγγραφείτε για να διαβάσετε περισσότερα".
Στο nautilus δεν βλέπει τίποτε.
Υπάρχει τρόπος να ξεπεραστεί αυτό;
(Μια λύση ίσως θα ήταν το ehide)
Title: Re: Επισκέπτες και registered users
Post by: webgift on November 24, 2012, 16:15:48
Καλησπέρα,
Μπορείς να ορίσεις το επίπεδο της πρόσβασης που θα έχει το εκάστοτε άρθρο. Με λίγα λόγια ορίζουμε πιο γκρουπ χρηστών θα βλέπει ένα άρθρο. Αυτό γινόταν στο Elxis CMS 2009.x (όχι 2003), αυτό γίνεται και στο Elxis CMS 4.x. Από εκεί και πέρα γίνε πιο σαφής στην πρόταση "Στο nautilus δεν βλέπει τίποτε."
// Η αλήθεια είναι ότι δεν έχει μάτια.  ;D (σε πειράζω)
Title: Re: Επισκέπτες και registered users
Post by: fivar on November 24, 2012, 20:03:51
Καλησπέρα,
Όπως λένε μια εικόνα χιλιες λεξεις.
Δες το http://www.schoolessons.gr , εδώ υπάρχουν 8 ομάδες χρηστών (μια registered users και από μία για κάθε τάξη)
Αν ένας απλός χρήστης προσπαθήει να δει μια από τις τάξεις, του λέει ότι απαιτείται ανώτερο επίπεδο πρόσβασης. (τα επίπεδα των τάξεων τα δίνω εγώ)
Δες και εδώ http://schoool.interactive-education.gr. Το Fuqs της κατηγορίας elxis το έχω ανεβάσει σε επίπεδο χρήστη, για να το δεις πρέπει να κάνεις λογαριασμό, αλλιώς δεν ξέρεις καν οτι υπάρχει.(εδώ είναι το πρόβλημα μου)

Εχεις δίκιο 2009 και όχι 2003 απλώς έχω μπλέξει με το msoffice (2003,07,10,13 και πάει λέγοντας) :)

Title: Re: Επισκέπτες και registered users
Post by: datahell on November 24, 2012, 22:12:24
Δεν κατάλαβα για ποια έκδοση του Elxis τελικά ενδιαφέρεσε, το 2009.x, ή το 4.x;

Στο Elxis 4.x οι ομάδες μπορεί να είναι στο ίδιο επίπεδο και πάραυτα να μπορούν να διακρθούν σε επίπεδο δικαιωμάτων με την τιμή του "exactlevel" (1000 x level + groupid, πχ "2005" για τους "users").

Καθώς τα group σου είναι στο ίδιο επίπεδο έχουν βασικά τα ίδια δικαιώματα. Αν δεν θες το ένα να μπαίνει στα χωράφια του άλλου αυτό το οποίο χρειάζεσε εσύ είναι custom ελέγχους acl, το οποίο μπορεί να γίνει με διάφορους τρόπους αλλά σίγουρα χρειάζεται λίγος (και εννοώ λίγος) κώδικας. Και μιλάμε πάντα για το περιεχόμενο στο οποίο το interface του acl είναι απλοποιημένο για να μην ζαλίζουμε τους χρήστες. Αντίθετα στις επεκτάσεις (module, plugins, components, κλπ) μπορείς να βάλεις custom rules στην σελίδα επεξεργασίας των παραμέτρων τους και να κάνεις πανεύκολα αυτό που θες.

Βέβαια μπορείς να εκμεταλευτείς αυτό το τελευταίο και να φτιάξεις πχ ένα module menu το οποίο θα βλέπουν μόνο οι μαθητές της Α δημοτικού, ένα άλλο μόνο για τους μαθητές της Β δημοτικού, κλπ.

Επεκτάσεις -> Modules -> Κλικ στο module που θες -> Πρόσβαση
Σβήνεις το δικαίωμα προβολής σε όλους.
Προσθέτεις νέο δικαίωμα προβολής στην ομάδα που σε ενδιαφέρει.
Προβολή -> Ομάδα -> ΧΧΧ -> προσθήκη

Σημαντικό
Όταν δίνουμε δικαιώματα με βάση το επίπεδο πρόσβασης ΟΛΟΙ οι χρήστες με μεγαλύτερο ή ίσο επίπεδο πρόσβασης μπορούν να δουν το αντικείμενο.
Όταν δίνουμε δικαιώματα με βάση την ομάδα χρήστη ΜΟΝΟ οι χρήστες που ανήκουν στην ίδια ομάδα μπορούν να δουν το αντικείμενο.
Όταν δίνουμε δικαιώματα με βάση τον χρήστη ΜΟΝΟ ο συγκεκριμένος χρήστης μπορεί να δει το αντικείμενο.

Προσθέτωντας επιπλέον κανόνες πρόσβασης αυτοί επεκτείνονται με το λογικό OR (πχ επιτρέπεται η ομάδα Χ ή η ομάδα Ψ).
Δεν χρειάζεται να αρνούμαστε πρόσβαση καθώς οτιδήποτε δεν παρέχεται αυτομάτως απαγορεύεται.

Στο screenshot που εσωκλείω το αντικείμενο θα είναι εμφανές ΜΟΝΟ στο group "Χρήστες" Ή στο group "Author", σε κανέναν άλλον ακόμα και αν έχει υψηλότερο επίπεδο πρόσβασης!
Title: Re: Επισκέπτες και registered users
Post by: fivar on November 25, 2012, 13:00:00
Στην προσπάθεια μου να το εξηγήσω τα μπέρδεψα χειρότερα.
Το πρόβλημα μου είναι: όταν ένα ή περισσότερα άρθρα ορισθούν σε επίπεδο χρήστη, ο απλός επισκέπτης δεν τα βλέπει (δεν ξέρει καν αν υπάρχουν).
Αναφέρομαι στο elxis 4.x.


Title: Re: Επισκέπτες και registered users
Post by: datahell on November 25, 2012, 18:02:07
Ε ναι, αυτό εννοείται.
Εφόσον δεν έχεις δικαίωμα προβολής γιατί να στο δείξει; Και αν έστω στο εμφάνιζε ως σύνδεσμο αν πάταγες σε αυτόν τον σύνδεσμο θα έπαιρνες error 404 (η σελίδα δεν βρέθηκε).
Title: Re: Επισκέπτες και registered users
Post by: fivar on November 25, 2012, 19:40:23
Quote
Εφόσον δεν έχεις δικαίωμα προβολής γιατί να στο δείξει; Και αν έστω στο εμφάνιζε ως σύνδεσμο αν πάταγες σε αυτόν τον σύνδεσμο θα έπαιρνες error 404 (η σελίδα δεν βρέθηκε).
Στο elxis 2009 τα εμφανίζει με την προτροπή "Εγγραφείτε για να διαβάσετε περισσότερα" κι αν ένας χρήστης προσπαθήσει να δει περιεχόμενο άλλης ομάδας (χρηστών) του λέει ότι απαιτείται υψηλότερο επίπεδο πρόσβασης.
Title: Re: Επισκέπτες και registered users
Post by: fivar on November 26, 2012, 21:11:18
Διαβάζοντας πιο προσεκτικά:
Quote
Καθώς τα group σου είναι στο ίδιο επίπεδο έχουν βασικά τα ίδια δικαιώματα. Αν δεν θες το ένα να μπαίνει στα χωράφια του άλλου αυτό το οποίο χρειάζεσε εσύ είναι custom ελέγχους acl, το οποίο μπορεί να γίνει με διάφορους τρόπους αλλά σίγουρα χρειάζεται λίγος (και εννοώ λίγος) κώδικας. Και μιλάμε πάντα για το περιεχόμενο στο οποίο το interface του acl είναι απλοποιημένο για να μην ζαλίζουμε τους χρήστες. Αντίθετα στις επεκτάσεις (module, plugins, components, κλπ) μπορείς να βάλεις custom rules στην σελίδα επεξεργασίας των παραμέτρων τους και να κάνεις πανεύκολα αυτό που θες.

Αν μπορούσες να μου δώσεις αυτόν τον λίγο κώδικα (καθότι άσχετος) θα με εξυπηρετούσες πολύ.
Τα υπόλοιπα με την πρόσβαση σε ομάδα χρήστη τα έφτιαξα και δουλεύουν μια χαρά.
Title: Re: Επισκέπτες και registered users
Post by: datahell on November 26, 2012, 21:33:17
Αν είσαι αρχάριος θα δυσκολευτείς με τον κώδικα...
Τις σχετικές οδηγίες δεν τις έχουμε γράψει ακόμα στον οδηγό προγραμματιστών στο elxis.net/docs/ οπότε θα πω λίγα πράγματα στα πολύ γρήγορα.

Ο έλεγχος πρόσβασης στο Elxis 4.x γίνεται έτσι:
$elxis->acl()->check($category, $element, $action, $identity)
Η επιστρεφόμενη τιμή είναι από -1 ως και 5. Κατά 99% είναι 0 ή 1.
Θετικοί αριθμοί υποδηλώνουν παραχώρηση πρόσβασης.

Συνεπώς αν θες να ελέγξεις αν κάποιος μπορεί να δει το component "test" το ελέγχεις έτσι:

Code: [Select]
if ($elxis->acl()->check('component', 'test', 'view', 0) > 0) {
    //επιτρέπεται να το δει
} else {
    //δεν επιτρέπεται να το δει
}

Για το περιεχόμενο όμως (άρθρα/κατηγορίες) δεν σε βοηθούν αυτά καθώς είναι γενικά, και εσύ θες κάτι ειδικότερο.
Εκεί θα πρέπει να δουλέψεις με το lowlevel και exactlevel (βλ. προηγούμενο άρθρο μου).

Την τιμή του lowlevel (access level x 1000) την παίρνεις έτσι:
$lowlevel = $elxis->acl()->getLowLevel();

και την τιμή του exactlevel (access level x 1000 + group id) έτσι:
$exactlevel = $elxis->acl()->getExactLevel();

Το $elxis το λαμβάνεις έτσι:
$elxis = eFactory::getElxis();

Ξέρω ότι δεν βοήθησα πολύ αλλά είναι μεγάλο το θέμα και δεν μπορώ να γράψω όλη την σχετική τεκμηρίωση εδώ μέσα.
Title: Re: Επισκέπτες και registered users
Post by: fivar on November 26, 2012, 21:39:51
Ευχαριστώ...