2012-01-02 1 views
0

Я хочу ограничить доступ к определенным элементам профиля пользователя, чтобы только пользователь мог их видеть, а не других зарегистрированных пользователей. Пока функция is_logged_in (см. Ниже) работает нормально, теперь мне нужно уточнить ее, чтобы она ограничивалась конкретным пользователем, который вошел в систему.Codeigniter ограничивает определенные элементы страницы владельцем профиля

Я уже включаю переменную user_id в свои данные сеанса, поэтому это доступно для использования.

function is_logged_in() 
{ 
    $is_logged_in = $this->session->userdata('is_logged_in'); 
    if($is_logged_in) 
    { 
     $this->index(); 
    } 
    else 
    { 
     redirect('fooview'); 
    } 
} 

ответ

1

вам нужно будет знать user_id профиля вы просматриваете, предположим, в вашем контроллере вы имеете его, как $user_id.

в контроллере вы можете сделать $is_owner = $this->session->userdata('user_id') == $user_id ? true : false;

затем передать его на ваш взгляд, как, например, $is_owner.

затем на ваш взгляд просто

if($is_owner){ 
    //show stuff 
} else { 
    //message saying stuff is private! 
} 
+0

Хорошо, спасибо, это в основном имеет смысл для меня. Вы говорите, что define $ is_owner как user_id из данных сеанса, а затем $ is_owner должен равняться $ user_id, как определено в контроллере профиля - это правильно? Единственное, что я не понимаю, истинный/ложный бит после инструкции $ is_owner. – chowwy

Смежные вопросы