হুক_নোড_অ্যাক্সেসের সম্মানের মতামত রয়েছে Having


14

আমি hook_node_access()কাস্টম মানদণ্ডের ভিত্তিতে কিছু নোডে ব্যবহারকারীদের অ্যাক্সেস অস্বীকার করতে ব্যবহার করছি । তবে, আমি চাই না যে এই বিষয়বস্তু এমন একটি দৃশ্যে প্রদর্শিত হবে যা যদি ব্যবহারকারী মানদণ্ডটি পাস না করে তবে এটি তালিকাভুক্ত করে। শ্রদ্ধা hook_node_access()বাস্তবায়নের কোনও উপায় আছে কি ?


যদি ভিউজ মডিউলটি সত্যিকার অর্থে অ্যাক্সেস অনুমতি সেটটিকে সম্মান করে না hook_node_access(), তবে কেবল একটি কাজ করা উচিত: ভিউ মডিউল কোড পরিবর্তন করতে।
কিমলালুনো

আমি মনে করি না যে নোকটি নোড_লোডের সাথে পুরোপুরি লোড না করা অবধি হুক চালিত হয় যাতে সম্ভবত এখনও এটি প্রদর্শিত হয়। তবে আমি ফিল্টার প্লাগইনে কাজ শুরু করেছি যা ফিল্টারিংয়ের জন্য একই পদ্ধতি ব্যবহার করবে যা হুক_নোড_অ্যাক্সেস () প্রয়োগ করে লোকেদের আটকানোর জন্য ব্যবহার করে। আমাকে কেবল আমার সমস্ত দর্শনগুলিতে সেই ফিল্টারটি যুক্ত করতে হবে এবং এটি কাজ করা উচিত। আমার কাজ শেষ হয়ে গেলে আমি এখানে তথ্য নিয়ে এখানে ফিরে আসব যাতে অন্যরা শুদ্ধ হতে পারেন।
nenne

ঠিক আছে, সুতরাং আমার ব্যবহারের ক্ষেত্রে এটি ছিল: গ্রাহক যে কোনও নোডের জন্য প্রযোজ্য 10 স্তরের অ্যাক্সেস চায় এবং ব্যবহারকারীরা সমস্ত নোডকে তাদের অ্যাক্সেসের স্তরটি প্রশমিত করতে সক্ষম হতে হবে। স্ট্যান্ডার্ড নোড দেখার জন্য এটি হুক_নোড_অ্যাক্সেসের মাধ্যমে সহজেই সমাধান করা হয়েছিল। যাইহোক, মতামতগুলি এটিকে সম্মান করে না আমি যুক্তির জন্য কাস্টম পিএইচপি কোড সহ একটি প্রাসঙ্গিক ফিল্টার তৈরি করেছি। পিএইচপি কোডটি মূলত ব্যবহারকারীদের অ্যাক্সেস স্তরের জন্য কম বা সমান মানগুলি ফিরিয়ে দেয় (যথাযথ বাক্য বিন্যাসে, দ্বারা পৃথক)। এই সমাধানটির অপূর্ণতা হ'ল প্রতিটি ভিউয়ের এই কনফিগারেশনটি প্রয়োজন।
nenne

আমি এই সমস্যার সাথে সম্পর্কিত এমন মতামতের জন্য একটি সমস্যা পেয়েছি, এটি সমস্যাটি সমাধানের উপযুক্ত পদ্ধতিটিকেও বোঝায়: drupal.org/node/1266388
nenne

2
আপনি কীভাবে সমস্যাটি সমাধান করবেন সে সম্পর্কে কোনও উত্তর লিখতে পারলে তা পুরোপুরি গ্রহণযোগ্য; Merlinofchaos যেমন বলেছে, ভিউজ মডিউলটি একটি ডাটাবেস ক্যোয়ারী ব্যবহার করে নোডগুলি লোড করছে এবং এ কারণেই hook_node_access()প্রয়োগগুলি সম্মানিত হচ্ছে না। এটি "ডিজাইনের দ্বারা", যেমন কোনও কাজের চারপাশের প্রতিবেদন করা ঠিক।
কিমলালুনো

উত্তর:


6

আমি এখানে কিছুক্ষণ আগে একই প্রশ্ন ছিল ।

hook_node_accessviewsবা দ্বারা স্বীকৃত হয় না menus। এটি কেবল প্রতিরক্ষা শেষ রেখা হিসাবে ব্যবহার করা উচিত।

নিয়ন্ত্রণ নোড অ্যাক্সেস করতে একটি ভাল উপায় মাধ্যমে হয় hook_node_access_recordsএবং hook_node_grantsহিসাবে বর্ণনা এখানে এবং এখানে


4

hook_node_access () সম্পূর্ণ নোডটি দেখার চেষ্টা করার সময় কেবলই অনুরোধ করা হয়। আপনাকে যা করতে হবে তা হুক_নোড_অ্যাক্সেস_রেকর্ডস () এবং হুক_নোড_গ্রান্টস () প্রয়োগ করা ।


1
তুমি কি বিস্তারিত বলতে পারো?

1

ভিউগুলি এসকিউএল প্রদর্শনের জন্য নোডগুলি নির্ধারণ করে। দুঃখের বিষয়, কার্য সম্পাদনের কারণে দ্রুপালের পক্ষে সমস্ত সম্ভাব্য প্রার্থীর উপর নোড_লোড সম্পাদন করা সম্ভব হবে না এবং তারপরে তাদের সকলের প্রত্যেককে হুক_নোড_একসেস কল করুন। এমন একটি দৃশ্য কল্পনা করুন যা হাজার হাজার নোড দেখায় (বিশেষত পেজার ব্যবহার করার সময়)। যদি যুক্তিটি এসকিউএল এ না করা হয় তবে পেজারের খুব অস্বাভাবিক ক্রিয়াকলাপ হবে সুতরাং ড্রুপাল আপনাকে আপনার ডাটাবেজে অ্যাক্সেস রেকর্ড ব্যবহার করে রিক হিসাবে উল্লেখ করেছে forces

অ্যাক্সেস_রেকর্ডস তৈরি করা মোটামুটি পরিমাণে বেশি কাজ তবে এটি এসকিউএল দিয়ে কাজ করবে। সুতরাং আমি যেখানেই সম্ভব আপনার কার্যকারিতা সমাধানের জন্য একটি বিদ্যমান নোড_একসেস মডিউলটি ব্যবহার করার পরামর্শ দিচ্ছি কারণ এটি সম্ভবত অ্যাক্সেস রেকর্ড ব্যবহার করে বাস্তবায়ন করা হবে এবং এর ফলে দৃশ্যের সাথে কাজ করবে।

যেভাবে অ্যাক্সেস রেকর্ডগুলি নীচে দেখানো হয়েছে সারণী নোড_একসেস টেবিলে সঞ্চিত রয়েছে : এখানে চিত্র বর্ণনা লিখুন প্রতিটি কলামের মন্তব্যের মাধ্যমে আপনি তাদের উদ্দেশ্য বুঝতে পারবেন। নোড অ্যাক্সেসের জন্য ব্যবহৃত সিস্টেম এবং রাজ্যের মধ্যে গোষ্ঠী হিসাবে গিডের কথা বিবেচনা করুন। এই গোষ্ঠীটিতে অনুমতি থাকতে পারে, আপডেট করতে এবং মুছতে পারে। সাধারণভাবে প্রতিটি নোড_একসেস মডিউল এক বা একাধিক রাজ্যের সংজ্ঞা দেয় (কখনও কখনও একাধিক নোড_অ্যাক্সেস মডিউলগুলিও সমান্তরালভাবে কাজ করতে পারে)। প্রতিটি অঞ্চলে একটি ব্যবহারকারীর এক বা একাধিক গিড থাকে।

ড্রুপালে "নোড_একসেস" ট্যাগ থাকা সমস্ত ক্যোয়ারিতে স্বয়ংক্রিয়ভাবে কিছু বিশেষ যুক্তি যুক্ত হবে। ট্যাগিং সম্পর্কে আরও জানতে ডকুমেন্টেশন দেখুন । এই বিশেষ যুক্তি প্রতিটি অঞ্চলের জন্য "নোড_একসেস" টেবিলের সাথে যোগ দেয় এবং শর্ত যুক্ত করে যে যেখানে "গিড" ব্যবহারকারীর জন্য প্রয়োগ করা একটি গিডের সমান, সেখানে ব্যবহারকারীর উপযুক্ত অনুমতি রয়েছে has

এই পুরো সিস্টেমটি সমস্ত প্রশ্নের সঠিকভাবে নোড_একসেস, এমনকি গণনা প্রশ্নাগুলি ইত্যাদি পরিচালনা করতে দেয় এটি খুব শক্তিশালী তবে উচ্চতর শিক্ষণ বক্ররেখা রয়েছে যা কেবলমাত্র সরল হুক_নোড_অ্যাক্সেস। যখনই সম্ভব, বিদ্যমান নোড_একসেস মডিউলটি ব্যবহার করা আপনাকে পুরো মাথা ব্যাথা বাঁচাতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.