Καλημέρες! Μια ερώτηση. Έχω ένα node type Course ...
# chat
e
Καλημέρες! Μια ερώτηση. Έχω ένα node type Course και ένα node type School. Τόσο το Course όσο και οι users έχουν ένα entity reference προς School, και μέσω hook_node_access δίνω view/update access σε όλους τους users ενός school για όλα τα courses αυτού του school. Το access φαίνεται να δουλεύει κανονικά (μπορούν να δουν και να editάρουν). Επίσης το access καλύπτει και τα unpublished courses. Έχω όμως πρόβλημα με μια view. Κάποια unpublished courses δεν εμφανίζονται στο view result όλων των users του school, παρά μόνο στου node owner. Η view δείχνει course nodes, φορτώνει 2 relationships: (1) το school των courses, και (2) τους χρήστες του school, και τραβάει το user ID ως contextual filter. Όταν δοκιμάζω το view preview (όντας εγώ user 1), όποιο uid που να είναι συνδεδεμένο σε κάποιο school κι αν βάλω στο contextual filter field, μου εμφανίζει πάντα την ίδια λίστα courses (η επιθυμητή συμπεριφορά). Όταν όμως κάνω login ως διαφορετικοί χρήστες, δεν βλέπω την ίδια λίστα. Δοκιμάζοντας σε έναν χρήστη που του λείπουν courses, το xdebug δεν χτυπάει καθόλου στο hook_node_access για τα courses που λείπουν. Άρα μάλλον το κόψιμο γίνεται από πριν. Έχει κανείς καμιά ιδέα τι να κοιτάξω πριν αρχίσω να σκάβω?
k
παράτα το node_access και πάνε με grants
η πάρτο αλλιώς και κάντο με groups
👍 1
όπου group = school. Μοιάζει ότι είναι καταλληλο από αυτά που περιγράφεις
e
μάλλον είναι λίγο αργά για να το γυρίσω σε groups, το project είναι πολύ προχωρημένο
θα κοιτάξω τα grants, θενξ!
n
voting for groups
s
Ίσως στο view κόβεται πριν λόγω permission "view any unpublished node" κάπως έτσι
e
Επανέρχομαι στο θέμα. Τώρα που το γύρισα σε grants/access_records έχω ένα νέο πρόβλημα. Υπάρχει κάποιος τρόπος, το save κάποιου node να μπορεί να αλλάξει τα access_records άλλων nodes? (συγκεκριμένα, που είτε είχαν reference πριν, είτε θα έχουν reference μετά το save) Βλέπω πως το hook_node_access_records καλείται μόνο μία φορά με argument το $node που αποθηκεύεται. Άρα μπορεί να αλλάξει μόνο τα δικά του τα access records.
Μπορώ να δώσω πιο συγκεκριμένο παράδειγμα αν η γενική περιγραφή μπερδεύει