নিম্নলিখিত ডাটাবেস কাঠামো ধরে নিচ্ছেন (প্রয়োজনে সংশোধনযোগ্য) ...
প্রদত্ত পৃষ্ঠায় প্রদত্ত ব্যবহারকারীর জন্য "কার্যকর অনুমতিগুলি" নির্ধারণ করার জন্য আমি একটি দুর্দান্ত উপায় সন্ধান করছি যা আমাকে পৃষ্ঠা এবং কার্যকর অনুমতি সহ একটি সারি ফেরত দিতে দেয়।
আমি ভাবছি যে আদর্শ সমাধানটিতে এমন একটি ফাংশন অন্তর্ভুক্ত থাকতে পারে যা বর্তমান ব্যবহারকারীর জন্য প্রদত্ত পৃষ্ঠার সারির জন্য "কার্যকর অনুমতিগুলি" মূল্যায়নের জন্য প্রয়োজনীয় পুনরাবৃত্তি সম্পাদনের জন্য একটি সিটিই ব্যবহার করে।
পটভূমি এবং বাস্তবায়নের বিশদ
উপরোক্ত স্কিমাটি একটি বিষয়বস্তু পরিচালনা সিস্টেমের জন্য একটি সূচনা পয়েন্ট উপস্থাপন করে যাতে ব্যবহারকারীদের ভূমিকা থেকে সরানো এবং মুছে ফেলার মাধ্যমে অনুমতি দেওয়া যেতে পারে।
সিস্টেমের সংস্থানসমূহ (উদাহরণস্বরূপ পৃষ্ঠাগুলি) সেই ভূমিকার সাথে যুক্ত ব্যবহারকারীদের গোষ্ঠী যা অনুমতি দেয় তা মঞ্জুর করার জন্য ভূমিকার সাথে জড়িত।
ধারণাটি হ'ল কোনও ব্যবহারকারীকে সমস্ত ভূমিকা অস্বীকার করে এবং গাছের মূল স্তরের পৃষ্ঠাটিকে সেই ভূমিকার সাথে যুক্ত করে এবং তারপরে সেই ভূমিকার সাথে ব্যবহারকারীকে যুক্ত করে সহজেই লকআপ করতে সক্ষম হয়।
এটি (যেমন উদাহরণস্বরূপ) কোম্পানির জন্য কাজ করা কোনও ঠিকাদার দীর্ঘকাল ধরে উপলব্ধ না থাকায় অনুমতি কাঠামোটি স্থানে থাকার অনুমতি দেয়, এটি তখন কেবল সেই ভূমিকা থেকে ব্যবহারকারীকে সরিয়ে দিয়ে তাদের মূল অনুমতিগুলি একই মঞ্জুরি দেবে allow ।
অনুমতিগুলি নিয়মিত ACL ধরণের বিধিগুলির ভিত্তিতে হয় যা এই নিয়মগুলি অনুসরণ করে ফাইল সিস্টেমে প্রয়োগ হতে পারে।
সিআরইউডি অনুমতিগুলি হ্রাসযোগ্য বিট হতে হবে যাতে উপলভ্য মানগুলি সত্য, মিথ্যা, যেখানে নিম্নলিখিতটি সত্য তা সংজ্ঞায়িত হয় না:
- false + काहीही = মিথ্যা
- সত্য + সংজ্ঞায়িত = সত্য
- সত্য + সত্য = সত্য
- সংজ্ঞায়িত না + সংজ্ঞায়িত = সংজ্ঞায়িত নয়
অনুমতিগুলির মধ্যে যদি কোনওটি মিথ্যা হয় -> মিথ্যা অন্য কোনও যদি সত্য হয় -> সত্য অন্য (সমস্ত সংজ্ঞায়িত নয়) -> মিথ্যা
অন্য কথায় আপনি যদি কোনও ভূমিকা সদস্যতার মাধ্যমে মঞ্জুর না হন এবং কোনও অস্বীকৃত নিয়ম একটি অনুমতি নিয়মকে ওভাররাইড না করে আপনি কোনও কিছুর জন্য অনুমতি পাবেন না।
এই প্রয়োগ করা অনুমতিগুলির "সেট" হ'ল গাছের উপর প্রয়োগ করা হয় এবং বর্তমান পৃষ্ঠায় অন্তর্ভুক্ত সমস্ত অনুমতি থাকে, অন্য কথায়: যদি এই পৃষ্ঠায় গাছের কোনও পৃষ্ঠায় কোনও মিথ্যা প্রয়োগ হয় তবে ফলাফলটি মিথ্যা তবে এখানে পুরো গাছটিকে যদি সংজ্ঞায়িত না করা হয় তবে বর্তমান পৃষ্ঠায় একটি সত্য নিয়ম রয়েছে ফলাফল এখানে সত্য হলেও এটি পিতামাতার পক্ষে মিথ্যা।
আমি সম্ভব হলে ডিবি কাঠামোটি আলগাভাবে রাখতে চাই, এও মনে রাখবেন যে আমার লক্ষ্যটি এখানে কিছু করতে সক্ষম হ'ল: select * from pages where effective permissions (read = true) and user = ?
সুতরাং যে কোনও সমাধানে আমাকে কার্যকর অনুমতিগুলির সাথে একটি অনুসন্ধানযোগ্য সেট রাখতে সক্ষম হতে হবে কোনও উপায়ে (যতক্ষণ না মানদণ্ডগুলি নির্দিষ্ট করা যায় সেগুলি তাদের ফিরিয়ে দেওয়া alচ্ছিক)।
ধরে নেওয়া 2 পৃষ্ঠাগুলি যেখানে 1 টি অন্যের সন্তানের এবং 2 টি ভূমিকা বিদ্যমান, একটি প্রশাসক ব্যবহারকারীদের জন্য 1 এবং কেবলমাত্র পঠিত ব্যবহারকারীদের জন্য, উভয়ই কেবলমাত্র মূল স্তরের পৃষ্ঠায় লিঙ্কযুক্ত আমি প্রত্যাশিত আউটপুট হিসাবে এই জাতীয় কিছু দেখার আশা করব:
Admin user:
Id, Parent, Name, Create, Read, Update, Delete
1, null, Root, True , True, True , True
2, 1, Child,True , True, True , True
Read only user:
Id, Parent, Name, Create, Read, Update, Delete
1, null, Root, False , True, False , False
2, 1, Child,False , True, False , False
এই প্রশ্নটি সম্পর্কে আরও আলোচনা এখানে থেকে শুরু করে মূল সাইট চ্যাট রুমে পাওয়া যাবে ।