ICQCorp
Навигатор О проекте Новости Ссылки Установка ФАКи Скриншоты Благодарности Документы PostgreSQL Скачать Об авторе Гостевая книга Russian English Проект IServerd

Таблица users_perms

Назначение таблицы:

В таблице users_perms хранятся авторизационные разрешения для всех пользователей. Авторизационные разрешения всегда проходят через сервер, который сохраняет их в данной таблице, чтобы в следующий раз клиенту не требовалось разрешение на повторное добавление контакта в SSI. Также это дает возможность авторизировать добавление контакта заранее без запроса (фьючерная авторизация).

Список полей таблицы:

 Название    Тип    Расшифровка    Описание поля  
 uin    float8    from uin   Номер пользователя давшего авторизацию
 tuin    float8    target uin  Номер пользователя получившего авторизацию
 tuin    float8    target uin  Тип (пока не используется)

Создание таблицы:

Таблица создается сервером или утилитой при помощи запроса SQL. Прототип запроса находится в модуле database\init_db.h


CREATE TABLE Users_Perms (uin float8, tuin float8, type int2);

Таблица содержит групповой индекс на поля uin,tuin,type для ускорения работы запросов выборки и сохранения целостности данных. Индекс создается следующим образом:


CREATE UNIQUE INDEX uperm_ind ON Users_Perms (uin,tuin,type);


Авторизация:

Процесс авторизации в SSI выглядит немного иначе чем в обычных клиентах. Здесь авторизация дается только один раз. Клиент сначала пытается добавить пользователя без всяких проверок авторизации и если авторизация требуется - сервер выдается ошибку. После чего SSI запись добавляется с TLV(66) в качестве признака того, что данная запись ожидает авторизации и после этого отправляется авторизационный запрос.

Авторизация дается клиентом, который посылает специальный SSI пакет через сервер. Сервер при получении этого пакета добавляет запись в таблицу Users_Perms и отправляет сообщение об авторизации адресату, который при получении уведомления просто перекидывает пользователя из группы "Awaiting authorization" в группу обычных пользователей (сервер сам удаляет TLV(66)).

Данная схема дает возможность для так называемоей фьючерной авторизации. В официальных клиентах например при добавлении пользователя можно поставить галочку и дать авторизацию клиенту до того как он ее попросит (просить ее он конечно после этого не будет).

Описание  ] Установка  ] Спасибо(а)  ] Скрины  ] Постгрес  ] Скачать  ]
Новости  ] ФАКи  ] Автор  ] Ссылки  ] Документы  ] Отзывы  ]
Webmaster
А.В.Шутко