I'm currently writing Report's system. I have about 20 different users with different access.
Am I doing it correctly? Can I improve my style of writing this code? All my reports based on the same structure.

In my Report's Controller:

    function my_report_name() 
        {
            //current week by default
            $dates['from'] = $this->uri->segment(3,date('Y-m-d',strtotime(date('o-\\WW'))-60*60*24*7)); 
            $dates['to'] = $this->uri->segment(4,date("Y-m-d", strtotime($dates['from']) + 6 * 24* 60 * 60));

            $data['report_name']=$this->Reports_model->getMyReportDescriptionSummary($dates);
            
            $data['title'] = "My Report Name Description";
            //view in 'view/report' folder to use
            //name of view always the same as name of function
            $data['main'] = "report/my_report_name";
            $data['menuReport'] = "class='current'";
            $data['panel'] = "panel/panel";
    
            $this->load->vars($data);
            //load template
            $this->load->view('template/t_main_full', $data);
    
        }

In my Model:

 

    function getMyReportDescriptionSummary($dates)
        {
            $this->db->select("some_data,
                               some_data_2,
                               some_data_3"
                              );
            $this->db->join("table1");
            $this->db->join("table2");
            $this->db->where("some_params");
            $Q = $this->db->get();
    
            if($Q->num_rows() > 0)
            {
                return $Q->result_array();
            }
            else
            {
                return false;
            }
        }

In my repots layout page:

    //function to check permissions
    <? if($this->Model_Users->accessVerify('my_report_name')) {?>
    <tr>My report</tr>
    <?}?>