অ্যাডমিন বাদে আমরা কীভাবে ডাব্লুপি প্রশাসক অঞ্চলে অ্যাক্সেস সীমাবদ্ধ করব?
আমাদের সাইটে ব্যবহারকারীদের নিজস্ব প্রোফাইল পৃষ্ঠা রয়েছে যা তাদের প্রয়োজনীয় সমস্ত ফাংশন করে।
সুতরাং অ্যাডমিনগুলি অ্যাডমিন ব্যতীত সকলের সীমা ছাড়াই উচিত।
কিভাবে যে কি?
অ্যাডমিন বাদে আমরা কীভাবে ডাব্লুপি প্রশাসক অঞ্চলে অ্যাক্সেস সীমাবদ্ধ করব?
আমাদের সাইটে ব্যবহারকারীদের নিজস্ব প্রোফাইল পৃষ্ঠা রয়েছে যা তাদের প্রয়োজনীয় সমস্ত ফাংশন করে।
সুতরাং অ্যাডমিনগুলি অ্যাডমিন ব্যতীত সকলের সীমা ছাড়াই উচিত।
কিভাবে যে কি?
উত্তর:
আমরা এই admin_init
ক্রিয়াটির দিকে ঝুঁকতে পারি এবং চেক করতে পারি যে current_user_can()
ব্যবহারকারী বর্তমান ফাংশনটি ব্যবহার করে প্রশাসক কিনা তা দেখতে ব্যবহারকারীর বর্তমান ব্যবহারকারী পারে কি না manage_options
, যা কেবলমাত্র প্রশাসকই করতে পারেন।
এই কোডটি যখন আপনার ফাংশন.এফপি ফাইলটিতে আটকানো হবে তখন কোনও প্রশাসক ড্যাশবোর্ড অ্যাক্সেস করার চেষ্টা করার সময় একটি বার্তা প্রদর্শিত হবে:
function wpse_11244_restrict_admin() {
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
return;
}
if ( ! current_user_can( 'manage_options' ) ) {
wp_die( __( 'You are not allowed to access this part of the site' ) );
}
}
add_action( 'admin_init', 'wpse_11244_restrict_admin', 1 );
আপনি যদি পছন্দ করেন তবে পরিবর্তে হোম পেজে ব্যবহারকারীকে পুনর্নির্দেশ করে আপনি আরও ভাল ব্যবহারকারীর অভিজ্ঞতা সরবরাহ করতে পারেন:
function wpse_11244_restrict_admin() {
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
return;
}
if ( ! current_user_can( 'manage_options' ) ) {
wp_redirect( home_url() );
exit;
}
}
add_action( 'admin_init', 'wpse_11244_restrict_admin', 1 );
আপনি যদি তাদের প্রোফাইল পৃষ্ঠায় ব্যবহারকারীকে পুনর্নির্দেশ করতে চান home_url()
তবে লিঙ্কটি দিয়ে উপরের কোডটিতে প্রতিস্থাপন করুন।
manage_options
সামর্থ্যটির জন্য @cybmeta পরীক্ষা করা কোনও প্রশাসক ব্যবহারকারীর জন্য যাচাই করার জন্য গ্রহণযোগ্য উপায়। এমনকি মার্ক জাকিথ তাই বলেছেন
manage_options
এমন কিছু যা কেবল "প্রশাসকরা" করতে পারে এবং এটি সত্য নয়, manage_options
এটি একটি ক্ষমতা এবং এডমিনের ভূমিকা থেকে সরানো যেতে পারে বা অন্যান্য ব্যবহারকারীর ভূমিকাতে নির্ধারিত হতে পারে। গুরুত্বপূর্ণ জিনিসটি হল আপনি কী করতে চান তা জানতে এবং সর্বোত্তম উপায়টি বেছে নেওয়া। আমার উত্তর দেখুন, আমি এটি ব্যাখ্যা।
manage_options
সঙ্গে manage_network
। পরেরটি ডিফল্ট "সাইট প্রশাসক" এর জন্য ড্যাশবোর্ডকে অক্ষম করে দেবে তবে সুপার প্রশাসক (নেটওয়ার্ক প্রশাসক) এর জন্য অ্যাক্সেস উপলভ্য রাখবে।
আপনি একটি প্লাগইন লিখতে পারেন এবং এতে প্রবেশ করতে পারেন admin_init
।
কোডেক্স আসলে আপনি যে বৈশিষ্ট্যটি সন্ধান করছেন তাতে একটি উদাহরণ দেয়।
http://codex.wordpress.org/Plugin_API/Action_Reference/admin_init#Example:_Access_control
প্রদত্ত কয়েকটি উত্তর বেশিরভাগ পরিস্থিতিতেই ঠিকঠাক হতে পারে তবে আমি মনে করি যে এর মধ্যে কেউই যা বলা হচ্ছে ঠিক তেমনটি করার ওয়্যারেন্টি দেয় না কারণ উত্তরের কোনওটিই ব্যবহারকারীর ভূমিকা চেক করে না, তারা দক্ষতা এবং দক্ষতাগুলি পরীক্ষা করে ফর্মের ভূমিকা নির্ধারিত এবং মুছে ফেলা যায়। সুতরাং, একটি সঠিক উত্তর দিতে, ব্যবহারকারীর ভূমিকা অবশ্যই পরীক্ষা করা উচিত, ক্ষমতাগুলি নয়:
add_action( 'admin_init', 'allow_admin_area_to_admins_only');
function allow_admin_area_to_admins_only() {
if( defined('DOING_AJAX') && DOING_AJAX ) {
//Allow ajax calls
return;
}
$user = wp_get_current_user();
if( empty( $user ) || !in_array( "administrator", (array) $user->roles ) ) {
//Redirect to main page if no user or if the user has no "administrator" role assigned
wp_redirect( get_site_url( ) );
exit();
}
}
যদি আপনি এটি পরীক্ষা করতে চান যে ব্যবহারকারীর "ম্যানেজ_অপশন" ক্ষমতা রয়েছে, আপনি এটি করতে পারেন। আসলে, এটি বেশিরভাগ ক্ষেত্রে সেরা বিকল্প is যদিও এই ক্ষমতা অ্যাডমিনিস্ট্রেটর ব্যবহারকারীদের সাথে ডিফল্টরূপে জড়িত, ক্ষমতাটি অ্যাডমিনের ভূমিকা থেকে সরানো যেতে পারে বা এটি অন্য ব্যবহারকারীর ভূমিকাতে নির্ধারিত হতে পারে। এ কারণেই বেশিরভাগ ক্ষেত্রে ব্যবহারকারী কী করতে পারে বা কী করতে পারে তা যাচাই করা ব্যবহারকারীর ভূমিকা যাচাই করার চেয়ে ভাল। সুতরাং, বেশিরভাগ ক্ষেত্রে দক্ষতার জন্য যাচাই বাছাই করার উপায় হওয়া উচিত তবে আপনি এই ধারণাটি পরিষ্কার করে নিতে পারেন এবং আপনার পরিস্থিতি এবং উদ্দেশ্যটির জন্য সেরা বিকল্পটি বেছে নেন:
add_action( 'admin_init', 'admin_area_for_manage_options_only');
function admin_area_for_manage_options_only() {
if( defined('DOING_AJAX') && DOING_AJAX ) {
//Allow ajax calls
return;
}
if( ! current_user_can( "manage_options" ) ) {
//Redirect to main page if the user has no "manage_options" capability
wp_redirect( get_site_url( ) );
exit();
}
}
প্রশাসন প্লাগইন চেষ্টা করুন ।
আপনি এটি দিয়ে বেশ ভাল জিনিস লক করতে পারেন।
আপনি htaccess ফাইলের মাধ্যমে অ্যাক্সেস সেট আপ করার চেষ্টা করতে পারেন
function wpse_11244_restrict_admin() {
if (!current_user_can('update_core')) {
wp_die(__('You are not allowed to access this part of the site'));
}
}
add_action('admin_init', 'wpse_11244_restrict_admin', 1);
'administrator'
একটি ক্ষমতা না। এটি কেবল পিছনের সামঞ্জস্য বজায় রাখতে কাজ করে। 'update_core'
বা অন্যান্য অ্যাডমিন সক্ষমতার জন্য পরীক্ষা করুন ।
এই লাইন আপনার মধ্যে রাখুন functions.php
function baw_no_admin_access()
{
if( !current_user_can( 'administrator' ) ) {
wp_redirect( home_url() );
die();
}
}
add_action( 'admin_init', 'baw_no_admin_access', 1 );
শেষ ব্যবহারকারীর মুখের ত্রুটিগুলির মাধ্যমে কখনও এটি ব্যবহার করুন। একটি ভাল ইউএক্স বিরুদ্ধে। এই কোডগুলি সেগুলি হোমে পুনঃনির্দেশ করে।
add_action( 'init', 'blockusers_init' );
function blockusers_init() {
if ( is_admin() && ! current_user_can( 'administrator' ) &&
! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
wp_redirect( home_url() );
exit;
}
}
আমি ডাব্লুপি ফ্রন্ট্যান্ড ব্যবহার করব এবং এডমিনদের প্রত্যাশার জন্য এটি সেট করব।