رفتن به مطلب

محدود کردن دسترسی کاربران


پست های پیشنهاد شده

سلام

من یه پست تایپ درست کردم برای نمونه کار و برای اون توانایی‌هایی هم تعریف کردم و بر اساس توانی‌ها یک نقش هم تعریف کردم.

مشکل اینجاست که کاربر الف می تونه نمونه‌کار های کاربر ب رو ویرایش کنه یعنی در صفحه نمایش همه نمونه‌کارها روی نمونه کارهای دیگران که میره قسمت ویرایش و انتقال به زباله‌دان و ویرایش سریع ظاهر میشه

کد مورد نظر رو قرار می‌دم، ممنون میشم دوستان مشکل این کد رو برطرف کنند


function itl_add_portfolios() {
$labels = array(
'name' => __( 'Portfolios', 'itl' ),
'singular_name' => __( 'Portfolio', 'itl' ),
'add_new' => __( 'Add New', 'itl' ),
'add_new_item' => __( 'Add New Portfolio', 'itl' ),
'edit_item' => __( 'Edit Portfolio', 'itl' ),
'new_item' => __( 'New Portfolio', 'itl' ),
'view_item' => __( 'View Portfolio', 'itl' ),
'search_items' => __( 'Search Portfolios', 'itl' ),
'not_found' => __( 'No Portfolios found', 'itl' ),
'not_found_in_trash' => __( 'No Portfolios found in Trash', 'itl' )
);
$capabilities = array(
'read_post' => 'read_portfolio',
'edit_post' => 'edit_portfolio',
'delete_post' => 'delete_portfolio',
'edit_posts' => 'edit_portfolios',
'publish_posts' => 'publish_portfolios',
'edit_others_posts' => 'edit_others_portfolios',
'edit_published_posts' => 'edit_published_portfolios',
'delete_others_posts' => 'delete_others_portfolios',
'delete_published_posts' => 'delete_published_portfolios',
'read_private_posts' => 'read_private_portfolios',
'delete_private_posts' => 'delete_private_portfolios',
'create_posts' => 'edit_portfolios',
);
$args = array(
'labels' => $labels,
'capabilities' => $capabilities,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'portfolio' ),
'capability_type' => 'portfolio',
'taxonomies' => true,
'has_archive' => true,
'hierarchical' => false,
'menu_icon' => 'dashicons-admin-customizer',
'menu_position' => 7,
'taxonomies' => array( 'illustrator' ),
'supports' => array( 'title', 'editor', 'thumbnail', 'comments' )
);
register_post_type( 'portfolio', $args );
add_role( 'illustrator', __( 'illustrator', 'itl' ),
array (
'read' => true,
'edit_posts' => true,
'upload_files' => true,
'read_portfolio' => true,
'edit_portfolio' => true,
'delete_portfolio' => true,
'edit_portfolios' => true,
'publish_portfolios' => true,
'edit_others_portfolios' => false,
'edit_published_portfolios' => false,
'delete_others_portfolios' => false,
'delete_published_portfolios' => false,
'read_private_portfolios' => false
)
);
}
add_action( 'init', 'itl_add_portfolios' );

لینک به ارسال

نیازی به این کارها نبود دسترسی ثبت نام شدگان را بگذارید مشارکت کننده و capability_type را هم بگذارید post و capabilities را حذف کنید

لینک به ارسال

ممنون از پاسختون

ممنون ولی در حالتی که شما گفتید دیگه خود طرف نمی‌تونه نمونه کارهاش رو مستقیم منتشر کنه

لازم کاربری که نقش illustrator داره بتونه خودش بدون نیاز به تایید نمونه کارش رو منتشر بکنه

لینک به ارسال

خوب تو تعریف illustrator تمام مقادیر رو برای post بگذارید و کاری که قبلا عرض شد را بکنید و دسترسی ثبت نام شدگان را بگذارید illustrator

شما کلا دو تا تعریف اصلی برای capability_type دارید post و page برای تعاریف دیگه مثل portfolio اول باید capability_type براش تعزیف بشه و بعدش role برای تعریف capability_type هم باید level بهش اختصاص بدید و باز موقع انتصابها به مشکل می خورید.

لینک به ارسال

بازم تشکر از جواب‌تون

اما حقیقتش دقیق متوجه منظورتون نشدم

جواب سوال هم کد زیر هست، که نوشته نشده بود


'map_meta_cap' => true

بازم ممنون (:

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...