вторник, 30 ноября 2010 г.

Ion Auth: Справочник по функциям класса

Вторая часть перевода документации по системе авторизации 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 строка в библиотеке.

Анонимный комментирует...

Если кто-то вкурсе? Когда регистрирую пользователя , ввожу даные на англ. языке то все нормально но когда ввожу даные на рус. - регистрируюсь то потом не могу залогинеттса помогити плз? В какую сторону рыть?