SUPEE-6285 ইনস্টল করার পরে অস্বীকৃত ত্রুটিগুলি অ্যাক্সেস করুন


85

আমাদের ম্যাজেন্টো ১.7.০.২ স্টোরটিতে SUPEE-6285 প্যাচ ইনস্টল করার পরে বাছাইযোগ্য অনুমতি (সমস্ত অনুমতি নয়) ব্যবহারকারীদের জন্য সমস্ত কাস্টম মডিউল অ্যাক্সেস করার চেষ্টা করার সময় সিস্টেমটি " অ্যাক্সেস অস্বীকৃত " ত্রুটি দেখায় । স্ক্রিনশট নীচে।

এখানে চিত্র বর্ণনা লিখুন

ব্যবহারকারীর অনুমতিগুলি রোল রিসোর্সে সঠিকভাবে সেট করা আছে এবং এগুলি সেট হয়ে গেছে তা নিশ্চিত করার জন্য আমরা অনুমতি সেটিংস পুনরায় প্রয়োগ করেছি।

সমস্যাটি একাধিক কাস্টম এক্সটেনশন জুড়ে পুনরুত্পাদন করা হয়েছে তাই এটি কেবলমাত্র একটি একক এক্সটেনশান যা কাজ করছে না।

আমি লগ আউট / ইন করেছি, ক্যাশে সাফ করেছি এবং নিশ্চিত করেছি যে সংকলক অক্ষম confirmed

কেউ কীভাবে এটির সমস্যার সমাধান করবেন?

উত্তর:


129

এখানে লিখিত হিসাবে :

যদি আপনি সীমাবদ্ধ প্রশাসক অ্যাকাউন্টগুলি ব্যবহার করেন, তৃতীয় পক্ষের এক্সটেনশনের কিছু মেনু তাদের জন্য আর কাজ না করে। কারণটি হ'ল ডিফল্ট ফিরতি মানটি Mage_Adminhtml_Controller_Action::_isAllowed()থেকে পরিবর্তিত trueহয়েছে Mage::getSingleton('admin/session')->isAllowed('admin')। যেসব এক্সটেনশানগুলি তাদের প্রশাসক কন্ট্রোলারে এই পদ্ধতিটি ওভাররাইড করে না কারণ তারা এসিএল ব্যবহার করে না, এখন তাদের "সমস্ত" সুবিধা দরকার।

একমাত্র সমাধান হ'ল এক্সটেনশানগুলিকে প্যাচ দেওয়া এবং এই পদ্ধতিটি তাদের সমস্ত প্রশাসক কন্ট্রোলারে যুক্ত করুন:

protected function _isAllowed()
{
    return true;
}

বা যদি তাদের আসলে একটি এসিএল সংস্থান সংজ্ঞায়িত থাকে etc/adminhtml.xml:

protected function _isAllowed()
{
    return Mage::getSingleton('admin/session')->isAllowed('ENTER RESOURCE IDENTIFIER HERE');
}

কীভাবে রিসোর্স আইডেন্টিফায়ার নির্ধারণ করবেন

এটির adminhtml.xmlমতো দেখতে কেমন হতে পারে:

ম্যাগ_সেটআপ উদাহরণ (এসিএল)

নীচের নোডের নামগুলি নিন acl/resources/admin/children, নীচের childrenনোডগুলি এড়িয়ে যান ।

অনুপস্থিত সংস্থান সনাক্তকারী কীভাবে তৈরি করবেন

যদি কেবল একটি <menu>সংজ্ঞা থাকে তবে সংজ্ঞা না থাকে তবে <acl>আপনি নিজের নিজস্ব সংজ্ঞাও দিতে পারেন (এটি একই মডিউলের মধ্যে থাকতে হবে না, তাই কোনও তৃতীয় পক্ষের ফাইলগুলি সংশোধন করতে হবে না) ::

ম্যাগ_সেটআপ উদাহরণ (মেনু)

নিচে সবকিছু কপি করুন menuথেকে acl/resources/admin/childrenএবং অপসারণ <action>নোড।


স্বয়ংক্রিয় ফিক্স

Https://gist.github.com/raybogman/eec47237b8ef0d4dd0fd এ সমর্থনডেস্ক.নু দ্বারা একটি ভাল কমান্ড লাইন সরঞ্জাম রয়েছে

এটি বেশিরভাগ অনুপস্থিত _isAllowed()কলগুলি বেশ ভাল পরিচালনা করে তবে অবচিত বা এনক্রিপ্ট করা উত্স ফাইলগুলির সাথে ভাঙা কোডের ফলস্বরূপ ফলস্বরূপ আপনার এখনও ফলাফলটি নিজেই পরীক্ষা করা উচিত।


এই সমাধানটি সবেমাত্র পরীক্ষা করা হয়েছে এবং "ড্যাশবোর্ড" অনুমতি দেওয়ার ফলে কোনও পার্থক্য নেই। "ড্যাশবোর্ড সুবিধা" কি রোল রিসোর্সের অধীনে "ড্যাশবোর্ড" অনুমতি হিসাবে একই বা এটি অন্য কোথাও?
ক্রিস

2
উত্তরটি আপডেট করেছে, আমি কনফিগারেশনটির ভুল ব্যাখ্যা করেছি admin, এটি কেবলমাত্র সমস্ত প্রিভিলিজেস ব্যবহারকারীদের ক্ষেত্রেই সত্য returns
ফ্যাবিয়ান শেমঙ্গলার

3
return true;আপনার config.xmlবা আপনার এসিএলের জন্য সংজ্ঞায়িত কিছু না থাকলে দয়া করে করবেন না adminhtml.xml। পরিবর্তে এক্সএমএল ফাইলে অনুমতিগুলি যুক্ত করুন এবং এটি সঠিকভাবে পরীক্ষা করুন। দেখে নিন অ্যালান ঝড় এর সাইটের বা এখানে অনুমতি তৈরি উপর তথ্য জন্য।
কেল

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

1
কনফিগার করা রুটের জন্য নিয়ন্ত্রক <use>admin</use>। তারা সাধারণত প্রসারিত Mage_Adminhtml_Controller_Action
ফ্যাবিয়ান শেমঙ্গলার

2

তৃতীয় পক্ষের মডিউলগুলির ক্ষেত্রে আমার ক্ষেত্রে অ্যাডমিনটিচটিএমএল নিয়ন্ত্রণকারীদের কোড নীচে যুক্ত করে কাজ করেছে:

protected function _isAllowed()

{
     return true;
}

-5

এটা করা উচিত:

protected function _isAllowed()
{
    return Mage::getSingleton('admin/session')->isAllowed('system/config');
}

সেক্ষেত্রে এটি ম্যাজেন্টো থেকে এসিএল সেটিংস ফেরত দেয়। আমি কেবল ভাবছি যে ম্যাজেন্টো কোর টিম এটি অন্য কোনও প্যাচ দিয়ে ঠিক করে ফেলবে বা এটি অ্যাপ্লিকেশন / কোড / স্থানীয়ভাবে একটি গ্লোবাল ফিক্স হিসাবে করা উচিত ...


3
এটি উদ্দেশ্যমূলক আচরণ নয়। তারা উদ্দেশ্য অনুসারে ডিফল্টরূপে প্রশাসক নিয়ন্ত্রণকারীকে সীমাবদ্ধ করে তুলেছিল। সুতরাং আসলে এক্সটেনশন বিক্রেতারা এখন আপডেট করতে বাধ্য হয়।
ফ্যাবিয়ান শেমঙ্গলার

1
সুতরাং, হ্যাঁ, যদি এটি আপনার পক্ষে কাজ করে app/code/localতবে এটিকে ঠিক করুন , তবে এসিএল ব্যতীত কাস্টম এক্সটেনশানগুলি প্রদর্শন করা এবং যদি কেবলমাত্র ব্যবহারকারীর জন্য অনুমতি থাকে তবে System > Configurationকারও কি চাইবে না।
ফ্যাবিয়ান শেমংলার

আপনার সমাধানটি একান্ত কার্যকর এবং প্রস্তাবিত নয়! আপনি ডিফল্টরূপে সত্য ফিরে আসতে পারেন (এটি যেমন এই প্যাচের আগে প্রশাসক নিয়ন্ত্রকের মধ্যে ছিল)। আরও ভাল সমাধান: আপনার অ্যাক্সেস নিয়ন্ত্রণ তালিকা সঠিকভাবে কনফিগার করুন।
ম্যাথিয়াস ক্লেইন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.