อยากทรบวิธีจัดการไม่ให้สมาชิกที่อยู่ในกลุ่มที่กำหนดมาส่องโพสต์ของผู้อื่นได้

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderators: mindphp, ผู้ดูแลกระดาน

User avatar
Ittichai_chupol
PHP VIP Members
PHP VIP Members
Posts: 4523
Joined: 19/09/2018 10:33 am

อยากทรบวิธีจัดการไม่ให้สมาชิกที่อยู่ในกลุ่มที่กำหนดมาส่องโพสต์ของผู้อื่นได้

Post by Ittichai_chupol » 13/02/2020 3:22 pm

ผมต้อการสร้าง Extension สร้างนามแฝง โดย ถ้าหากผู้ที่เป็น admin หรือ mod เข้ามาส่องโพสต์ของผุ้อื่นที่เป็นนามแฝง ก็จะสามารถมองเห็นนามแฝง และโพสต์ของผุ้นั้น
แต่หากเป็นบุคคลทั่วไปจะไม่สามารถที่จะมองเห็นโพสต์ที่เป็นนามแฝง

แค่ปัญหาคือ จะมีกลุ่ม พิเศษกลุ่มหนึ่ง ที่ไม่ใช้ admin หรือ mod แต่กลับมองเห็น โพสต์ที่เป็นนามแฝงได้
จึงทราบถ้าหากไม่ได้ต้องการที่จะให้ผู้ที่เป็นสมาชิก กลุ่มดังกล่าว มาส่องโพสต์ ที่เป็นนามแฝง มาเห็นนามแฝงของผุ้ที่ถูกส่อง จะต้องทำอย่างไรครับ
私を傷つけるすべてが終了します。

User avatar
Ittichai_chupol
PHP VIP Members
PHP VIP Members
Posts: 4523
Joined: 19/09/2018 10:33 am

Re: อยากทรบวิธีจัดการไม่ให้สมาชิกที่อยู่ในกลุ่มที่กำหนดมาส่องโพสต์ของผู้อื่นได้

Post by Ittichai_chupol » 13/02/2020 3:44 pm

ส่วนของการตั้งค่า กลุ่มดังกล่าว
Programming - PHP-1.png
私を傷つけるすべてが終了します。

User avatar
Ittichai_chupol
PHP VIP Members
PHP VIP Members
Posts: 4523
Joined: 19/09/2018 10:33 am

Re: อยากทรบวิธีจัดการไม่ให้สมาชิกที่อยู่ในกลุ่มที่กำหนดมาส่องโพสต์ของผู้อื่นได้

Post by Ittichai_chupol » 13/02/2020 3:48 pm

วิธีการเขียนโคดในการตรวจสอบสิทธิ์ ที่ผมใช้ก็มีดังนี้

Code: Select all

            global $phpbb_container;
            $phpbb_content_visibility = $phpbb_container->get('content.visibility');
            $pagination = $phpbb_container->get('pagination');
        global $auth;
            $moderator_permissions_forum = $auth->acl_get('m_');
    $sql_array = array(
                    'SELECT' => ' DISTINCT  p.post_subject, u.user_colour, t.topic_poster,t.topic_first_poster_name, t.topic_last_post_id , t.topic_id ,p.post_text ,p.post_time ,p.post_subject ,u.username ,p.post_subject ,p.post_id,t.forum_id ,t.topic_id,u.user_id ,t.topic_views ,topic_first_post_id',
                    'FROM' => array(
                        POSTS_TABLE => 'p',
                    ),
                    'LEFT_JOIN' => array(
                        array(
                            'FROM' => array(TOPICS_TABLE => 't'),
                            'ON' => 'p.topic_id = t.topic_id',
                        ),
                        array(
                            'FROM' => array(USERS_TABLE => 'u'),
                            'ON' => 't.topic_poster = u.user_id',
                        ),
                    ),
                    'WHERE' => $m_approve_topics_fid_sql . ' AND  p.poster_id = ' . $uid . ' AND  t.topic_first_post_id != p.post_id ',
                    'ORDER_BY' => ' p.post_time DESC',
                );
                if ($post_id != null) {
                    if ($uid != $this->user->data['user_id'] && $moderator_permissions_forum != 1 ) {  //เป็นส่วนที่ใช้ในการตรวจสอบว่า เป็น admin หรือ mod
                        $sql_array['WHERE'] .= ' AND   ' . $this->db->sql_in_set('p.post_id', $postid);
                    }
                }
                
จึงอยากทราบว่าทำไม่จึงไม่สามารถตรวจสอบสิทธิ์ได้
Attachments
Programming - PHP-1.png
私を傷つけるすべてが終了します。

User avatar
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 22724
Joined: 31/03/2014 10:02 am
Contact:

Re: อยากทรบวิธีจัดการไม่ให้สมาชิกที่อยู่ในกลุ่มที่กำหนดมาส่องโพสต์ของผู้อื่นได้

Post by thatsawan » 13/02/2020 5:31 pm

วิธีเช็คว่าเป็นสิทธิ์หรือป่าวสามารถทำได้ 2 แบบ
เเต่ คำถามนี่้อาจจะไม่เกี่ยวกับสิทธิ์อย่างเดียวต้องดู SQL ด้วย

Code: Select all

$auth->acl_get('m_');
$auth->acl_get('m_', $forum_id)

Post Reply

Return to “Programming - PHP”

Who is online

Users browsing this forum: Ittichai_chupol and 182 guests