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

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

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

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

โดย thatsawan » 13/02/2020 5:31 pm

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

โค้ด: เลือกทั้งหมด

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

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

โดย Ittichai_chupol » 13/02/2020 3:48 pm

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

โค้ด: เลือกทั้งหมด

            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);
                    }
                }
                
จึงอยากทราบว่าทำไม่จึงไม่สามารถตรวจสอบสิทธิ์ได้
แนบไฟล์
Programming - PHP-1.png

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

โดย Ittichai_chupol » 13/02/2020 3:44 pm

ส่วนของการตั้งค่า กลุ่มดังกล่าว
Programming - PHP-1.png

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

โดย Ittichai_chupol » 13/02/2020 3:22 pm

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

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

ข้างบน