دسترسی کاربران

پرسیده شده
فعالیت 1103 روز پیش
دیده شده 604 بار
1

سلام وقت بخیر
بنده درگیر یه پروژه هستم در قسمت دسترسی کاربران به مشکل خوردم

تو این پروژه دو نقش (دبیر کارگروه و مدیر کارگروه) دارم که کارگروه های متعددی داره

 

این سایت بصورت مولتی سایت نیست و حدود 25 کارگروه داره که هر کارگروه دو یوزر دارند(دبیر و مدیر) که دسته بندی پست اختصاصی دارند( اخبار کارگروه A، صورت جلسات کاگروه B)



شرح مشکل :

میخوام دبیرکارگروه A امکان پست گذاری ، ویرایش رو داشته باشه ولی برای انتشار باید به تایید مدیر همون کارگروه برسه.
مدیر کارگروه B و.. امکان ویراش و تایید انتشار پست دبیر کارگروه A رو نداشته باشند و فقط این امکان برای مدیر اون کارگروه باشه.

 

خلاصه میخوام کاربر دبیر امکان ایجاد ، ویرایش داشته باشه و کاربر مدیر امکان ایجاد ، ویرایش، انتشار پست خودش و انتشار پست اون کاربر رو فقط داشته باشه. (بجز سوپر ادمین)

 

فایل پیوست

محمدرضا آمرهء
محمدرضا آمرهء

2 اردیبهشت 00

1
حذف شده

سلام خدمت شما. برای حل این مشکل می تونید نقش های مورد نظرتون رو به راحتی در وردپرس اضافه کنید و برای دبیر کار گروه دسترسی انتشار پست رو حذف کنید.

به کد زیر دقت کنید که ما امکان انتشار پست رو برای دبیر حذف کردیم.

function disable_dabir_publish_cap() {
	$dabir = get_role( 'dabir' );
	$dabir->remove_cap( 'publish_posts' );
}
add_action( 'init', 'disable_dabir_publish_cap' );
فایل پیوست

کیوان علی محمدی

توسط

کیوان علی محمدی

3 اردیبهشت 00

0
حذف شده

ممنون
 

ولی مشکل اصلی هنوز باقی مونده

- مدیر کارگروه A امکان ویرایش و انتشار پست دبیر بقیه کارگروهB رو داره! (نباید داشته باشه فقط پست دبیر کارگروه خودش)
 

فایل پیوست

محمدرضا آمرهء

توسط

محمدرضا آمرهء

3 اردیبهشت 00

0
حذف شده

برای این مورد می تونید از فیلتر pregetposts استفاده کنید. با این فیلتر می تونید مشخص کنید کوئری مورد نظر که لیست پست ها رو دریافت می کنه چطوری کار کنه و بر چه اساس نمایش بده پست ها رو.

 

function posts_for_current_author($query) {
    global $pagenow;
 
    if( 'edit.php' != $pagenow || !$query->is_admin )
        return $query;
 
    if( !current_user_can( 'edit_others_posts' ) ) {
        global $user_ID;
        $query->set('author', $user_ID );
    }
    return $query;
}
add_filter('pre_get_posts', 'posts_for_current_author');

اینم یک نمونه کد برای این مورد.

فایل پیوست

کیوان علی محمدی

توسط

کیوان علی محمدی

4 اردیبهشت 00

0
حذف شده

متوجه نشدم! 

لطفا یه توضیح بدید 

 

یعنی تو قسمت «نوشته ها» پیشخوان وردپرس امکان ویرایش پست بقیه کاربران رو با فیلتر محدود کردید!؟

محدود به یوزر خودش یعنی نویسنده و یوزر دیگه (user_ID)

فایل پیوست

محمدرضا آمرهء

توسط

محمدرضا آمرهء

4 اردیبهشت 00

0
حذف شده

این نمونه کد پست هایی که در پیش خوان نمایش داده میشه رو فیلتر میکنه برای کاربری که در سیستم لاگین هست. حالا می تونید این آیدی کاربری رو برابر با کاربرهای دیگه که نقش خاصی دارن هم قرار بدین.

فایل پیوست

کیوان علی محمدی

توسط

کیوان علی محمدی

8 اردیبهشت 00

جلسه نقش ها و دسترسی های کاربری