مهدی

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

5 پست در این موضوع قرار دارد

سلام

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

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

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


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' );

0

به اشتراک گذاری این پست


لینک به پست

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

2

به اشتراک گذاری این پست


لینک به پست

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

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

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

0

به اشتراک گذاری این پست


لینک به پست

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

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

1

به اشتراک گذاری این پست


لینک به پست

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

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

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


'map_meta_cap' => true

بازم ممنون (:

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری