גישה לאוסף המשתמשים בעלי הרשאת כתיבה ל-node מסויים דרך Drupal API
שאלה למי שמבין בתכנות ל-Drupal API:
בדף מסויים ידוע לי שרק לאדמין ולעוד משתמש נוסף יש הרשאת כתיבה ל-node הנוכחי.
אני מנסה להבין מה הקוד PHP שיכול לגשת ל-node נוכחי ולהבין מיהם המשתמשים שיש להם הרשאת edit ל-node, למצוא מביניהם את המשתמש (היחיד) שאינו האדמין, ולהחזיר את השם ו/או ה-ID של אותו המשתמש...
זה אמור להיות מאוד פשוט כשאתה יודע איפה דרופל שומרת את המשתנים של הסשן ואיך לגשת אליהם. אבל אני לא ממש יודע. אשמח מאוד אם תעזרו לי או תכוונו אותי לדוגמה ברשת...
תודה!

אני לא יודע בדיוק מה אתה צריך
אני לא יודע בדיוק מה אתה צריך בסופו של דבר, אבל לפי התיאור הכיוון שלך הוא לא נכון.
אם מדובר בגישה עבור רשימה מסויימת של אנשים אולי ACL יעזור לך או שתשמור את זה כ- USER REFERENCE?
אמתי -- חברת גיזרה
כתבתי מה אני צריך. צעד ראשון:
כתבתי מה אני צריך.
צעד ראשון: אתה בדף עריכה של node מסויים ורוצה לדעת למי יש הרשאות כתיבה ל-node הזה. מן הסתם לך יש הרשאה כי אתה בדף עריכה. אבל יש עוד משתמשים עם הרשאת עריכה, ואני רוצה לדעת מי הם.
את זה ידוע לך איך לגלות?
תפעיל את Devel node access
תפעיל את Devel node access שבמודול DEVEL, זה יעזור לך להבין למי יש הרשאה.
אמתי -- חברת גיזרה
אתה מדבר על קבלת הנתונים דרך
אתה מדבר על קבלת הנתונים דרך GUI של מודול.
אני מדבר על קבלת הנתונים דרך PHP. אני במקום מסויים ב-GUI הניהול של דרופל שבו אני צריך להכניס קוד PHP (נראה לי אמור להיות די קצר) שמחזיר מספר או מחרוזת. הקוד הזה יתבצע בזמן הטיפול ב-request של משתמש מסויים, ולכן יחזיר את המידע שרלוונטי לסשן שלו.
סיטואציה כזו מוכרת לך?
דוגמה לשליפת נתון דומה בזמן הטיפול ב-request:
http://11heavens.com/Drupal-coder-lost-in-space/who-am-I
ועוד אחת:
http://www.templatezine.com/2010/04/drupal-how-to-get-know-type-of-curre...
דוגמאות נחמדות, אבל אני צריך קוד שיחזיר את הנתון שתיארתי בתחילת השרשור.
אכיפת הרשאות עובד בכיוון
אכיפת הרשאות עובד בכיוון הפוך:
בהינתן משתמש מסוים , אפשר לקבוע איזה הרשאות הוא מקבל על node
node.module/function/node_access/6" title="http://api.drupal.org/api/drupal/modules--node--node.module/function/node_access/6">http://api.drupal.org/api/drupal/modules--node--node.module/function/nod...
אם תסתכל בקוד של הפונקציה תראה שה hook מופעל לכל מודול סוג תוכן ואז כל מודול יכול לממש הרשאות בצורה דינמית ובנוסף לכ זה יש את node_access_grants
שאפילו עובד בצורה יותר דינמית מ hook_access
אין מנגנון בדרופל שעובד הפוך , כי השיטה לקבוע הרשאות יכולה להשתנות מסוג תוכן לאחר , לכן בדרך היחידה היא דרך שאילתת sql משלך שתהיה מותאמת לסוג תוכן ספיציפי
yakoub abaya
אבל אולי תוכל לממש מנגנון
אבל אולי תוכל לממש מנגנון משלך שיעבוד ספיצית לאתר שלך
תצטרך להגדיר hook חדש משלך שכל מודול סוג תוכן יממש במקביל ל hook_access ו hook_node_grants ויספק הלוגיקה ההפוכה של מציאת כל המשתמשים בעלי הרשאה מסוימת
yakoub abaya
אתה מדבר על קבלת הנתונים דרך
לא, אני מדבר שתשמש במודול הזה כדי להבין כיצד עובד האקסס בדרופל. אבל כפי שציינתי למעלה, אני לא הייתי משתמש בטכניקה הזאת, אלא מוצא פיתרון אחר שלא דורש שאילתא כל כך איטית.
אמתי -- חברת גיזרה
אוקיי נראה לי שהבנתי איך
אוקיי נראה לי שהבנתי איך ההרשאות גישה ל-node שמורות בדרופל.
לא ברור לי באיזה טכניקה לא היית משתמש? לא הצעתי להשתמש בשום טכניקה (פרטי לכך שאני צריך להשתמש בקוד). הסברתי מה הקלט שיש לי (node מסויים) ומה אני רוצה לקבל בפלט (מיהו היוזר שהוא לא אדמין שיכול לכתוב ל-node).
אם יש לך הצעה לקוד PHP שיעשה את העבודה אני אשמח לראות אותה.