দর্শন মডিউল: ব্যবহারকারী দ্বারা অ্যাক্সেস সীমাবদ্ধ কিভাবে


8

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

একটি কাস্টম ভিউ অ্যাক্সেস প্লাগইন তৈরি করার জন্য সর্বোত্তম পদ্ধতি এ নিয়ে আমার খুব বেশি অভিজ্ঞতা নেই।

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

কোন ধারনা? বা আমি কি এটির চেয়ে বেশি জটিল করে তুলছি?

ধন্যবাদ, বেন


আপনাকে একটি ভিউ অ্যাক্সেস প্লাগইন লিখতে হতে পারে তবে আপনি যদি নিজের প্রশ্নটি আরও কিছুটা বিশদ দিয়ে আপডেট করতে পারেন তবে সম্ভবত আপনি এটি অন্য কোনও উপায়ে অর্জন করতে পারেন। দর্শনটি কী করে / প্রদর্শন করে? কোন ব্যবহারকারী এটি দেখার অনুমতিপ্রাপ্ত? ব্যবহারকারীদের বিভিন্ন ভূমিকা আছে? ব্যবহারকারীদের একটি নির্দিষ্ট ক্ষেত্র বা তাদের সাথে যুক্ত এমন কিছু আছে যা তাদের এটিকে অ্যাক্সেস করতে দেয়?
জেমি হোলারন

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

এইভাবে, সরবরাহকারী একটি চলমান ভিত্তিতে তাদের পণ্য বিক্রয় নিরীক্ষণ করতে পারেন। তবে আমি "সরবরাহকারী" ভূমিকার সাথে প্রত্যেককে অ্যাক্সেস দিতে চাই না কারণ তখন কোনও সরবরাহকারী অন্য সরবরাহকারীদের পণ্যগুলি বিক্রয় দেখতে সক্ষম হবে। ধারণা তৈরী কর? ;-)
বেঙ্ক

উত্তর:


5

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


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

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

ধন্যবাদ। :-) আমি স্ট্যাক এক্সচেঞ্জে নতুন এবং আমার কাছে মাত্র 13 পয়েন্ট রয়েছে। আমি যখন ভোট দেওয়ার চেষ্টা করি তখন এটি বলছে আমার ভোট দেওয়ার জন্য 15 পয়েন্ট দরকার। সুতরাং কারও কাছে যদি বাঁচার জন্য দুটি পয়েন্ট থাকে (বা আমি সেগুলি অন্য কোনও উপায়ে উপার্জন করতে পারি) তবে আমি অবশ্যই উত্তর এবং প্রশ্নগুলিতে ভোট দেব। --বেন
বেনক

ওহ ঠিক আছে, আমি 15 পয়েন্টের সীমাটি ভুলে গেছি। আপনি সর্বদা একটি প্রশ্নের উত্তর দেওয়ার চেষ্টা করতে পারেন ... আপনার উত্তরের একটি আপভোইট 10 টি প্রতিনিধিত্ব করে।
চৌকি

6

ব্যবহার করে দেখুন দেখেছে অ্যাক্সেস কলব্যাক মডিউল।

দর্শনের জন্য কলব্যাক-ভিত্তিক অ্যাক্সেস নিয়ন্ত্রণ সরবরাহ করে।

উপলভ্য কলব্যাক ফাংশনগুলি hook_views_access_callbacks()ফাংশন (যেমন একইভাবে hook_perm()) ব্যবহার করে মডিউলগুলি দ্বারা সংজ্ঞায়িত করা হয় , তারপরে দৃশ্যের "অ্যাক্সেস সীমাবদ্ধতা" কনফিগারেশনে সেট করা যেতে পারে।


ভিউ অ্যাক্সেস কলব্যাক ব্যবহার করা অদ্ভুত মারাত্মক ত্রুটি ব্যতীত দুর্দান্ত কাজ করে। এখানে দেখুন: drupal.stackexchange.com/questions/3336/… । যাবার মতো মনে হচ্ছে - তবে কীভাবে এটি ঠিক করবেন?
শ্রুভিশন

2

আমি অবশ্যই কিছু মিস করছি, তবে মনে হচ্ছে আপনি কোনও নতুন ভূমিকা তৈরি করবেন এবং এই ব্যবহারকারীদের যুক্ত করবেন। তারপরে দর্শনগুলির অ্যাক্সেস: ভূমিকা বৈশিষ্ট্যটি ব্যবহার করুন।

আপনার যদি সামগ্রীতে কোনও কিছুর সাথে অ্যাক্সেসের অধিকারগুলি আবদ্ধ করার প্রয়োজন হয় তবে আমি একটি কাস্টম ভিউ অ্যাক্সেস ব্যবহার করব, যা আমি প্রথমবার ব্যথার জন্য ব্যথা পেয়েছিলাম তবে একবার কাজ করার নমনীয়তার প্রশংসা করি। যদি ভিউ মেনু আইটেমটি উত্পন্ন করে তবে ভিউ অ্যাক্সেস ফাংশনটি পাস না করে তবে এটি প্রদর্শিত হবে না।

আপনি যদি কেবল একটি মেনু আইটেমটি লুকিয়ে রাখেন তবে আমার কাছে মনে হবে যে দৃশ্যটি এখনও চলবে এবং কোনও ব্যবহারকারী তথ্য দেখতে কোনও ইউআরআইকে টুইঙ্ক করতে পারে।

জার্মান


1

আপনার উদ্দেশ্যে নির্দিষ্টভাবে কিছু নতুন অনুমতি তৈরি করতে কাস্টম অনুমতি মডিউলটি ব্যবহার করার বিষয়ে এবং তারপরে ব্যবহারকারীদের সেই নতুন অনুমতিগুলি নির্ধারণের জন্য ব্যবহারকারী অনুমতি মডিউলটি কীভাবে ব্যবহার করবেন?

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


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

আমি এটি চেষ্টা করে ফিরে রিপোর্ট করব।
বেনেকে

0

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


হ্যাঁ, আমি জিনিসগুলি চেষ্টা করে দেখাব এবং তার প্রতিবেদন করব। আমি একটি যুক্তি সহ একটি ভিউ অ্যাক্সেস প্লাগইন চেষ্টা করছি, সুতরাং এটি কীভাবে হয় তা আমরা দেখব। ধন্যবাদ।
বেনেকে

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