Вторая часть перевода документации по системе авторизации Ion Auth для CodeIgniter. как следует из названия, в этой части описываются методы библиотеки ion_auth
Первая часть: CodeIgniter: библиотека Ion Auth
Методы доступные в моделе вызываются через контроллер с помощью "магических" методов PHP5 . В своих приложениях вы не должны использовать вызовы, типа ion_auth_model->method()
Репозитарий github с Ion Auth
login()
Вход пользователя в систему.
Параметры:
'Имя пользователя' - string обязательный.
'Пароль пользователя' - string обязательный.
'Запомнить пользователя' - boolean не обязательный.
Возвращаемое значение:
boolean. TRUE если пользователь удачно вошёл в систему, FALSE если пользователю не удалось войти в систему.
Пример использования:
$identity = 'ben.edmunds@gmail.com'; $password = '12345678'; $remember = TRUE; // Запомнить пользователя $this->ion_auth->login($identity, $password, $remember);
logout()
Выход пользователя из системы.
Пример использования:
$this->ion_auth->logout();
register()
Регистрация (создание) нового пользователя.
Параметры:
'Имя пользователя' - string обязательное.
'Пароль' - string обязательное.
'E-mail' - string обязательное.
'Мета-данные' - массив мета-данных обязательное.
'Имя группы' - string не обязательное. Если поле не установлено, то используется значение указанное в файле конфигурации.
Возвращаемое значение:
boolean. TRUE если пользователь удачно создан, FALSE если пользователь не создан.
Пример использования:
$username = 'ben.edmunds@gmail.com'; $password = '12345678'; $email = 'benedmunds'; $additional_data = array( 'first_name' => 'Ben', 'last_name' => 'Edmunds', ); $group_name = 'users'; $this->ion_auth->register($username, $password, $email, $additional_data, $group_name);
update_user()
Обновление мета-данных пользователя
Параметры:
'Id' - integer обязательное.
'Мета-данные' - массив мета-данных обязательное.
Возвращаемое значение:
boolean. TRUE если данные о пользователе удачно обновлены, FALSE если данные о пользователе не удалось обновить.
Пример использования:
$id = 12; $data = array( 'first_name' => 'Ben', 'last_name' => 'Edmunds', 'password' => '123456789', ); $this->ion_auth->update_user($id, $data);
delete_user()
Удаление пользователя
Параметры:
'Id' - integer обязательное.
Возвращаемое значение:
boolean. TRUE если пользователь удачно удалён, FALSE если пользователя не удалось удалить.
Пример использования:
$id = 12; $this->ion_auth->delete_user($id);
forgotten_password()
Восстановление забытого пароля. Высылается сообщение с кодом пользователю через e-mail.
Параметры:
'E-mail' - string обязательное.
Возвращаемое значение:
boolean. TRUE если сообщение удачно послано FALSE если сообщение не удалось послать.
Пример использования:
//Рабочий пример находится в репозитарии github function forgot_password() { $this->form_validation->set_rules('email', 'Email Address', 'required'); if ($this->form_validation->run() == false) { //setup the input $this->data['email'] = array('name' => 'email', 'id' => 'email',); //Если есть ошибки то отображаем их и форму $this->data['message'] = (validation_errors()) ? validation_errors() : $this->session->flashdata('message'); $this->load->view('auth/forgot_password', $this->data); } else { //вызываем метод восстановления забытого пароля, и высылаем пользователю e-mail с кодом активации $forgotten = $this->ion_auth->forgotten_password($this->input->post('email')); if ($forgotten) { //если здесь нет ошибок $this->session->set_flashdata('message', $this->ion_auth->messages()); redirect("auth/login", 'refresh'); //мы должны отобразить страницу подтверждения, вместо страницы входа } else { $this->session->set_flashdata('message', $this->ion_auth->errors()); redirect("auth/forgot_password", 'refresh'); } } }
forgotten_password_complete()
Последний этап сброса пароля. Пользователь получает код через e-mail
Параметры:
'Код' - string обязательное.
Возвращаемое значение:
string. Новый пароль пользователя.
Пример использования:
//Рабочий пример находится в репозитарии github public function reset_password($code) { $reset = $this->ion_auth->forgotten_password_complete($code); if ($reset) { //Если пароль сбрасывается, то пересылаем на страницу входа $this->session->set_flashdata('message', $this->ion_auth->messages()); redirect("auth/login", 'refresh'); } else { //если пароль не сбрасывается, то пересылаем назад, на страницу восстановления пароля. $this->session->set_flashdata('message', $this->ion_auth->errors()); redirect("auth/forgot_password", 'refresh'); } }
logged_in()
Проверяет, вошёл ли пользователь в систему.
Возвращаемое значение:
boolean. TRUE если пользователь вошёл в систему, FALSE если пользователь не вошёл в систему.
Пример использования:
if (!$this->ion_auth->logged_in()) { redirect('auth/login'); }
is_admin()
Проверяет, вошёл ли пользователь в систему как администратор.
Возвращаемое значение:
boolean. TRUE если пользователь вошёл в систему как администратор, FALSE Если пользователь не вошёл в систему как администратор.
Пример использования:
if (!$this->ion_auth->is_admin()) { $this->session->set_flashdata('message', 'Для просмотра этой страницы вы должны быть администратором'); redirect('welcome/index'); }
is_group()
Проверят, состоит ли вошедший пользователь в определёной группе/группах
Параметры:
'Имя группыe' - string или массив strings обязательное.Возвращаемое значение:
boolean. TRUE если пользователь состоит в группе/группах FALSE если пользователь не состоит в группе/группах.
Пример использования:
$group = 'gangstas'; if (!$this->ion_auth->is_group($group)) { $this->session->set_flashdata('message', 'Для просмотра этой страницы вы должны быть гангстером :)'); redirect('welcome/index'); }
username_check()
Проверят, зарегистрирован ли пользователь с таким именем.
Параметры:
'Имя пользователя' - string обязательное.
Возвращаемое значение:
boolean. TRUE если пользователь зарегистрирован, FALSE если пользователь не зарегистрирован.Пример использования:
//Пример довольно простой, но работает. Обычно используется вместе с form_validation. $username = $this->input->post('username'); $password = $this->input->post('password'); $email = $this->input->post('email'); $additional_data = array( 'first_name' => $this->input->post('first_name'), 'last_name' => $this->input->post('last_name'), ); if (!$this->ion_auth->username_check($username)) { $group_name = 'users'; $this->ion_auth->register($username, $password, $email, $additional_data, $group_name) }
email_check()
Проверят, зарегистрирован ли пользователь с такие e-mail'ом
Параметры:
'E-mail' - stringобязательное.
Возвращаемое значение:
boolean. TRUE если пользователь зарегистрирован, FALSE если пользователь не зарегистрирован.
Пример использования:
//Пример довольно простой, но работает. Обычно используется вместе с form_validation. $username = $this->input->post('username'); $password = $this->input->post('password'); $email = $this->input->post('email'); $additional_data = array( 'first_name' => $this->input->post('first_name'), 'last_name' => $this->input->post('last_name'), ); if (!$this->ion_auth->email_check($email)) { $group_name = 'users'; $this->ion_auth->register($username, $password, $email, $additional_data, $group_name) }
identity_check()
Проверяет, зарегистрирован ли пользователь с таким идентификатором.
Параметры:
'Идентификатор' - string обязательный.
Возвращаемое значение:
boolean. TRUE если пользователь зарегистрирован, FALSE если пользователь не зарегистрирован.Пример использования:
//Это простой, но работающий пример. $user = $this->ion_auth->get_user(); $data = array( 'identity' => $this->input->post('identity'), 'first_name' => $this->input->post('first_name'), 'last_name' => $this->input->post('last_name'), ); if ($data['identity'] === $user->username || $data['identity'] === $user->email || $this->ion_auth->identity_check($data['identity']) === FALSE) { $this->ion_auth->update_user($user->id, $data) }
get_user()
Позволяет получить данные о пользователе.
Параметры:
'Id' - integer не обязательно, если 'id' не указан, то используется 'id' пользователя вошедшего в систему.
Возвращаемое значение:
stdClass Object ( [id] => 1 [group_id] => 1 [ip_address] => 127.0.0.1 [username] => administrator [password] => 59beecdf7fc966e2f17fd8f65a4a9aeb09d4a3d4 [salt] => 9462e8eee0 [email] => admin@admin.com [activation_code] => 19e181f2ccc2a7ea58a2c0aa2b69f4355e636ef4 [forgotten_password_code] => 81dce1d0bc2c10fbdec7a87f1ff299ed7e4c9e4a [remember_code] => 9d029802e28cd9c768e8e62277c0df49ec65c48c [created_on] => 1268889823 [last_login] => 1279464628 [active] => 0 [group] => admin [group_description] => Administrator [first_name] => Admin [last_name] => Account [company] => Some Corporation [phone] => (123)456-7890 )
Пример использования:
$user = $this->ion_auth->get_user(); echo $user->email;
get_user_array()
Возвращает массив данных о пользователе
Параметры:
'Id' - integer не обязательное, если 'id' не указан, то используется 'id' пользователя вошедшего в систему.
Возвращаемое значение:
Array ( [id] => 1 [group_id] => 1 [ip_address] => 127.0.0.1 [username] => administrator [password] => 59beecdf7fc966e2f17fd8f65a4a9aeb09d4a3d4 [salt] => 9462e8eee0 [email] => admin@admin.com [activation_code] => 19e181f2ccc2a7ea58a2c0aa2b69f4355e636ef4 [forgotten_password_code] => 81dce1d0bc2c10fbdec7a87f1ff299ed7e4c9e4a [remember_code] => 9d029802e28cd9c768e8e62277c0df49ec65c48c [created_on] => 1268889823 [last_login] => 1279464628 [active] => 0 [group] => admin [group_description] => Administrator [first_name] => Admin [last_name] => Account [company] => Some Corporation [phone] => (123)456-7890 )
Пример использования:
$user = $this->ion_auth->get_user_array(); echo $user['email'];
get_user_by_email()
Возвращает данные о пользователе, по его e-mail адресу.
Параметры:
'E-mail' - string обязательное.Возвращаемое значение:
stdClass Object ( [id] => 1 [group_id] => 1 [ip_address] => 127.0.0.1 [username] => administrator [password] => 59beecdf7fc966e2f17fd8f65a4a9aeb09d4a3d4 [salt] => 9462e8eee0 [email] => admin@admin.com [activation_code] => 19e181f2ccc2a7ea58a2c0aa2b69f4355e636ef4 [forgotten_password_code] => 81dce1d0bc2c10fbdec7a87f1ff299ed7e4c9e4a [remember_code] => 9d029802e28cd9c768e8e62277c0df49ec65c48c [created_on] => 1268889823 [last_login] => 1279464628 [active] => 0 [group] => admin [group_description] => Administrator [first_name] => Admin [last_name] => Account [company] => Some Corporation [phone] => (123)456-7890 )
Пример использования:
$email = 'ben.edmunds@gmail.com'; $user = $this->ion_auth->get_user_by_email($email); echo $user->first_name;
get_users()
Возвращает данные о пользователях.
Параметры:
'Имя группы' - string не обязательное. Если группа не указана, то возвращаются данные о всех пользователях.
Возвращаемое значение:
массив объектов
Пример использования:
$admin_group = 'admin'; $admin_users = $this->ion_auth->get_users($admin_group);
get_users_array()
Возвращает данные о пользователях
Параметры:
'Имя группы' - string не обязательное. Если группа не указана, то возвращаются данные о всех пользователях.
Возвращаемое значение:
многомерный массив
Пример использования:
$admin_group = 'admin'; $admin_users = $this->ion_auth->get_users($admin_group);
get_newest_users()
Возвращает данные о новых пользователях.
Параметры:
'Лимит' - integer не обязательное. Значение по умолчанию: 10.
Возвращаемое значение:
массив объектов
Пример использования:
$admin_group = 'admin'; $newest_admin_users = $this->ion_auth->get_newest_users($admin_group);
get_newest_users_array()
Возвращает массив данных о новых пользователях
Параметры:
'Лимит' - integer не обязательное. Значение по умолчанию: 10.
Возвращаемое значение:
многомерный массив
Пример использования:
$admin_group = 'admin'; $newest_admin_users = $this->ion_auth->get_newest_users_array($admin_group);
get_active_users()
Возвращает данные об активных пользователях
Параметры:
'Имя группы' - string не обязательное. Если группа не указана, возвращаются данные о всех пользователях.
Возвращаемое значение:
массив объектов
Пример использования:
$admin_group = 'admin'; $active_admin_users = $this->ion_auth->get_active_users($admin_group);
get_active_users_array()
Возвращает массив данных об активных пользователях.
Параметры:
'Имя группы' - string не обязательное. Если группа не указана, возвращаются данные о всех пользователях.
Возвращаемое значение:
многомерный массив
Пример использования:
$admin_group = 'admin'; $active_admin_users = $this->ion_auth->get_active_users_array($admin_group);
get_inactive_users()
Возвращает данные о неактивных пользователях.
Параметры:
'Имя группы' - string не обязательное. Если группа не указана, возвращаются данные о всех пользователях.
Возвращаемое значение:
массив объектов
Пример использования:
$admin_group = 'admin'; $inactive_admin_users = $this->ion_auth->get_inactive_users($admin_group);
get_inactive_users_array()
Возвращает массив данных о неактивных пользователях
Параметры:
'Имя группы' - string не обязательное. Если группа не указана, возвращаются данные о всех пользователях.
Возвращаемое значение:
многомерный массив
Пример использования:
$admin_group = 'admin'; $inactive_admin_users = $this->ion_auth->get_inactive_users_array($admin_group);
get_groups()
Возвращает данные групп.
Возвращаемое значение:
массив объектов
Пример использования:
$groups = $this->ion_auth->get_groups();
get_group()
Возвращает данные группы по id группы.
Параметры:
'Id' - integer обязательный.
Возвращаемое значение:
объект
Пример использования:
$group_id = 2; $group = $this->ion_auth->get_group($group_id);
get_group_by_name()
Возвращает данные о группе по имени группы.
Параметры:
'Имя группы' - string обязательное.
Возвращаемое значение:
объект
Пример использования:
$group_name = 'users'; $group = $this->ion_auth->get_group_by_name($group_name);
messages()
Возвращает сообщение.
Возвращаемое значение:
строка
Пример использования:
$id = 12; $data = array( 'first_name' => 'Ben', 'last_name' => 'Edmunds', ); if ($this->ion_auth->update_user($id, $data)) { $messages = $this->ion_auth->messages(); echo $messages; } else { $errors = $this->ion_auth->errors(); echo $errors; }
set_message_delimiters()
Устанавливает разделители для сообщений.
Параметры:
'Начальный разделитель' - string обязательный.
'Конечный разделитель' - string обязательный.
Пример использования:
$id = 12; $data = array( 'first_name' => 'Ben', 'last_name' => 'Edmunds', ); if ($this->ion_auth->update_user($id, $data)) { $this->ion_auth->set_message_delimiters('<p><strong>','</strong></p>'); $messages = $this->ion_auth->messages(); echo $messages; } else { $this->ion_auth->set_error_delimiters('<p><strong>','</strong></p>'); $errors = $this->ion_auth->errors(); echo $errors; }
errors()
Возвращает сообщение об ошибке.
Возвращаемое значение:
строка
Пример использования:
$id = 12; $data = array( 'first_name' => 'Ben', 'last_name' => 'Edmunds', ); if ($this->ion_auth->update_user($id, $data)) { $messages = $this->ion_auth->messages(); echo $messages; } else { $errors = $this->ion_auth->errors(); echo $errors; }
set_error_delimiters()
Устанавливает разделитель для ошибок.
Параметры:
'Начальный разделитель' - string обязательное.
'Конечный разделитель' - string обязательное.
Пример использования:
$id = 12; $data = array( 'first_name' => 'Ben', 'last_name' => 'Edmunds', ); if ($this->ion_auth->update_user($id, $data)) { $this->ion_auth->set_message_delimiters('<p><strong>','</strong></p>'); $messages = $this->ion_auth->messages(); echo $messages; } else { $this->ion_auth->set_error_delimiters('<p><strong>','</strong></p>'); $errors = $this->ion_auth->errors(); echo $errors; }
extra_where()
Добавляет поле используемое для проверки уникальности пользователей. В основном это используется для проверки уникальности пользователей по дополнительному полю таблицы, кроме имени пользователя, на сайтах использующих разные домены и одну базу данных.
Параметры:
string или array обязательное.
Использование строки:
$this->ion_auth->extra_where("meta.domain = 'yourmother.com'");
Использование массива:
$where = array('meta.domain', 'yourmother.com'); $this->ion_auth->extra_where($where);
extra_set()
Позволяет использовать дополнительное поле при регистрации пользователя. В основном это используется на сайтах использующих разные доменные имена и общую базу данных.
Параметры:
string или array обязательное.Использование строки:
$this->ion_auth->extra_set("meta.domain = 'yourmother.com'");
Использование массива:
$where = array('meta.domain', 'yourmother.com'); $this->ion_auth->extra_set($where);
3 комментария:
Спасибо - очень помог! Хорошо сделал!
Функция проверки вхождения соответствующего пользователя в группу - in_group, а не is_group. Кстати, в англоязычных описаниях эта же ошибка.
464 строка в библиотеке.
Если кто-то вкурсе? Когда регистрирую пользователя , ввожу даные на англ. языке то все нормально но когда ввожу даные на рус. - регистрируюсь то потом не могу залогинеттса помогити плз? В какую сторону рыть?
Отправить комментарий