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

  • ব্যবহারকারীর ভূমিকা সংজ্ঞায়িত করুন
  • ভূমিকার উপর নির্ভর করে, নেভিগেশন মেনু আইটেমগুলির প্রদর্শন নিয়ন্ত্রণ করুন
  • নির্দিষ্ট ভূমিকার জন্য অ্যাক্সেসযোগ্য নয় এমন পৃষ্ঠাগুলিতে নেভিগেট করা অসম্ভব করুন

প্রাথমিক প্রস্তুতি

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


একটি অনুমোদিত ব্যবহারকারী অ্যাপ্লিকেশনে প্রবেশ করতে পারে এমন বিভিন্ন বিকল্পগুলি বিবেচনায় নেওয়া প্রয়োজন:

  • Login পৃষ্ঠায় সফল অনুমোদনের ফলে লগইন করুন।
  • রেজিস্ট্রেশনের ফলে লগইন করুন।
  • ইতিমধ্যে অনুমোদিত ব্যবহারকারীদের জন্য একটি নির্দিষ্ট পৃষ্ঠার লিঙ্কের মাধ্যমে সরাসরি লগইন।

এই প্রতিটি ক্ষেত্রে, একটি ব্যাকএন্ড ক্যোয়ারী ব্যবহার করা হয় যা ব্যবহারকারী সম্পর্কে তথ্য প্রদান করে। সংশ্লিষ্ট ব্যবসায়িক প্রক্রিয়ায়, আপনার আগে তৈরি করা গ্লোবাল ভেরিয়েবল User_gv রেকর্ড করতে আপনাকে শুধুমাত্র একটি Set Variable ব্লক যোগ করতে হবে।

এই ব্লকটি অনুমোদিত ব্যবহারকারীদের জন্য CheckAuth ব্যবসায়িক প্রক্রিয়াতে যুক্ত করা হয়েছে, যা ব্যবসায়িক প্রক্রিয়া বিভাগে প্রি- Prebuilt ফোল্ডারে অবস্থিত।

লগইন বা সাইনআপ পৃষ্ঠাগুলির মাধ্যমে প্রবেশ করতে, ব্লকটি সংশ্লিষ্ট বোতামগুলির ব্যবসায়িক প্রক্রিয়াগুলিতে যোগ করা হয়।

আবেদনের শুরু পৃষ্ঠায় ফলাফল পরীক্ষা করা যাক। এটি করার জন্য, আসুন একটি Label যুক্ত করি যা ব্যবহারকারীকে নাম দ্বারা অভিবাদন জানাবে এবং ভূমিকার উপর নির্ভর করে লিখবে যে সে একজন প্রশাসক কিনা।

আপনাকে একটি ব্যবসায়িক প্রক্রিয়া সেট আপ করতে হবে যা কোনো Label প্রদর্শিত হলে ফায়ার হয় ( Label onShow ট্রিগার)।

  1. Expand User । ব্যবহারকারীর নাম এবং ভূমিকা সম্পর্কে তথ্যের জন্য।
  2. In Array । প্রদত্ত ব্যবহারকারী Admins গ্রুপে আছে কিনা তা পরীক্ষা করতে।
  3. If-Else । চেকের ফলাফলের উপর নির্ভর করে কর্মের পরিবর্তনশীলতার জন্য।
  4. Set Variable (String) । ব্যবহারকারী Admins গ্রুপের সদস্য না হলে " NOT " মান সহ একটি String ভেরিয়েবল তৈরি করতে বা যদি এটি একটি খালি মান হয়।
  5. Concat Strings (Multiple) । একটি সম্পূর্ণ বাক্যাংশ তৈরি করতে যেমন " Hi, Ken. You are NOT Admin ”।
  6. Label Update Properties . পৃষ্ঠায় এই বাক্যাংশের চূড়ান্ত প্রদর্শনের জন্য।

যদি সবকিছু সঠিকভাবে করা হয়, তবে পৃষ্ঠায় প্রবেশের যে কোনও বৈকল্পিকের সাথে, স্ক্রীনের অনুরূপ ফলাফল হবে।

এখন মূল অংশে যাওয়ার সময়। আসুন শুধুমাত্র অ্যাডমিনদের উদ্দেশ্যে একটি পৃষ্ঠা তৈরি করি এবং এটিতে যেতে সংশ্লিষ্ট মেনু আইটেম ( Admin Page ) যোগ করি। সর্বোত্তম সমাধান হল ডিফল্টরূপে এর দৃশ্যমানতা অক্ষম করা।

Navigate ব্লক ব্যবহার করে, আপনাকে অবশ্যই Page প্যারামিটারে তৈরি পৃষ্ঠাটি নির্বাচন করতে হবে এবং এই পৃষ্ঠার আইডি খুঁজে বের করতে হবে।

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

এর পরে, আপনাকে নেভিগেশন মেনু আইটেমগুলির দৃশ্যমানতা নিয়ন্ত্রণ করতে ব্যবসায়িক প্রক্রিয়াটি নিজেই তৈরি করতে হবে (আসুন এটিকে Set NavItem Visibility )।

  1. Expand User । ব্যবহারকারীর ভূমিকা সম্পর্কে তথ্যের জন্য।
  2. In Array । প্রদত্ত ব্যবহারকারী Admins গ্রুপে আছে কিনা তা পরীক্ষা করতে।
  3. For each loop । গ্লোবাল ভেরিয়েবলে নির্দিষ্ট করা সমস্ত পৃষ্ঠার জন্য লুপ চালানোর জন্য।
  4. NavItem Update Properties ব্যবহারকারী একজন প্রশাসক কিনা তার উপর নির্ভর করে একটি উপাদানের দৃশ্যমানতা নিয়ন্ত্রণ করতে।

লগইন এবং ব্যবহারকারী নিবন্ধন বোতামগুলির ব্যবসায়িক প্রক্রিয়াগুলিতে হোম পেজে যাওয়ার আগে তৈরি করা ব্যবসায়িক প্রক্রিয়ার ব্লক যোগ করতে হবে (আগে, বর্তমান ব্যবহারকারী সম্পর্কে তথ্য সহ একটি পরিবর্তনশীল রেকর্ড করতে তাদের সাথে Set Variable ব্লক যুক্ত করা হয়েছিল)।

সরাসরি লিঙ্কের মাধ্যমে অ্যাক্সেস নিয়ন্ত্রণ

শেষ কাজটি হল একটি ব্যবসায়িক প্রক্রিয়া সেট আপ করা যা “ On app launch ” ট্রিগার দ্বারা অ্যাপ্লিকেশন চালু করার সময়ই কার্যকর করা হয়। আগের ধাপের মতো, প্রমাণীকৃত ব্যবহারকারীদের জন্য Set NavItems Visibility ব্লক যোগ করুন।

এছাড়াও, সরাসরি লিঙ্কের মাধ্যমে একটি বন্ধ পৃষ্ঠায় অ্যাক্সেসের বিরুদ্ধে সুরক্ষা প্রদান করা প্রয়োজন:

  1. In Array (Admin_pages) । লক্ষ্য পৃষ্ঠাটি শুধুমাত্র প্রশাসক পৃষ্ঠাগুলির তালিকায় আছে কিনা তা পরীক্ষা করতে৷
  2. If-Else । চেকের ফলাফলের উপর নির্ভর করে কর্মের পরিবর্তনশীলতার জন্য। False হলে, আপনি নির্দিষ্ট পৃষ্ঠায় নেভিগেট করতে পারেন। True এর ক্ষেত্রে, এই পৃষ্ঠাটি অ্যাক্সেস করার অধিকারের জন্য একটি অতিরিক্ত চেক প্রয়োজন।
  3. Expand User । গ্লোবাল ভেরিয়েবল User_gv থেকে ব্যবহারকারীর তথ্য পড়তে।
  4. In ArrayAdmins গ্রুপে সদস্যতা পরীক্ষা করতে।
  5. If-Else । প্রশাসকের অধিকারের উপস্থিতি বা তাদের অনুপস্থিতির উপর নির্ভর করে ক্রিয়াগুলি নির্বাচন করা।
  6. Navigate । প্রয়োজনীয় পৃষ্ঠায় যেতে বা প্রারম্ভিক পৃষ্ঠায় পুনঃনির্দেশিত করার জন্য যদি উপযুক্ত অধিকার ছাড়াই একজন ব্যবহারকারী শুধুমাত্র প্রশাসকদের উদ্দেশ্যে একটি পৃষ্ঠা খোলার চেষ্টা করে।

নির্বাচিত পৃষ্ঠাগুলি এখন অননুমোদিত অ্যাক্সেস থেকে সুরক্ষিত। অধিকারের অনুপস্থিতিতে, এগুলি মেনুতে প্রদর্শিত হয় না এবং সরাসরি লিঙ্কের মাধ্যমেও অ্যাক্সেস করা যায় না।

এটা মনে রাখা গুরুত্বপূর্ণ যে নির্দিষ্ট পৃষ্ঠাগুলির জন্য অ্যাক্সেস সুরক্ষা মানে এই পৃষ্ঠাগুলিতে ব্যবহার করা যেতে পারে এমন শেষ পয়েন্টগুলির জন্য স্বয়ংক্রিয় সুরক্ষা নয়৷ এটি করার জন্য, যদি প্রয়োজন হয়, Middleware Token Auth সেটিংসে, আপনাকে ব্যবহারকারী গোষ্ঠীগুলিকে নির্দিষ্ট করতে হবে যাদের নির্বাচিত শেষ পয়েন্টে অ্যাক্সেসের অধিকার রয়েছে৷

Was this article helpful?

AppMaster.io 101 ক্র্যাশ কোর্স

10 মডিউল
2 সপ্তাহ

কোথা থেকে শুরু করবেন নিশ্চিত নন? নতুনদের জন্য আমাদের ক্র্যাশ কোর্সে যান এবং A থেকে Z পর্যন্ত AppMaster অন্বেষণ করুন।

কোর্স শুরু করুন
Development it’s so easy with AppMaster!

আরো সাহায্য প্রয়োজন?

আমাদের বিশেষজ্ঞদের সাহায্যে যেকোনো সমস্যা সমাধান করুন। সময় বাঁচান এবং আপনার অ্যাপ্লিকেশন তৈরিতে ফোকাস করুন।

headphones

যোগাযোগ সমর্থন

আপনার সমস্যা সম্পর্কে আমাদের বলুন, এবং আমরা আপনাকে একটি সমাধান খুঁজে বের করব।

message

সম্প্রদায় চ্যাট

আমাদের চ্যাটে অন্যান্য ব্যবহারকারীদের সাথে প্রশ্ন নিয়ে আলোচনা করুন।

কমিউনিটিতে যোগ দিন