Python: Проверка пользователей

From EjudgeWiki

Навигация: Главная страница/Система ejudge/Расширение/Доступ к ejudge из программ на Питоне/Работа с базой пользователей/Проверка пользователей.

Запросы данной группы позволяют проверять возможность авторизации пользователей. Запросы полностью аналогичны запросам на авторизацию, но запросы на авторизацию должны выполняться для еще неавторизованного соединения. Запросы на проверку пользователей выполняются для авторизованного соединения и не приводят к изменению параметров авторизации соединения.

Для выполнения запросов на проверку пользователей само соединение должно быть авторизовано с уровнем привилегий ADMIN. Пользователь должен иметь биты полномочий LIST_USERS для указанного турнира или для всей базы пользователей.

privCheckUser

Для проверки регистрационных логина и пароля пользователя используется метод privCheckUser

res = clnt.privCheckUser(ip_str, ssl_flag, contest_id, locale_id, login, password)

Если операция завершилась с ошибкой выбрасывается исключение IOError. Если операция завершилась успешно, то res - это словарь следующего вида:

{ 'user_id' : user_id, 'sid' : sid, 'name' : name }

Возвращаемое имя пользователя name соответствует указанному турниру contest_id.

privCheckUserBySID

Для проверки регистрационного сессионного ключа используется метод privCheckUserBySID

res = clnt.privCheckUserBySID(ip_str, ssl_flag, sid)

Если операция завершилась с ошибкой выбрасывается исключение IOError. Если операция завершилась успешно, то res - это словарь следующего вида:

{ 'user_id' : user_id,
  'contest_id' : contest_id,
  'locale_id' : locale_id,
  'status_str' : status_str,
  'regflags' : regflags,
  'login' : login,
  'name' : name }

privCheckContestUser

Для проверки турнирных логина и пароля пользователя используется метод privCheckContestUser

res = clnt.privCheckContestUser(ip_str, ssl_flag, contest_id, locale_id, login, password)

Если операция завершилась с ошибкой выбрасывается исключение IOError. Если операция завершилась успешно, то res - это словарь следующего вида:

{ 'user_id' : user_id, 'sid' : sid, 'name' : name }

Возвращаемое имя пользователя name соответствует указанному турниру contest_id.

privCheckContestUserBySID

Для проверки регистрационного сессионного ключа используется метод privCheckContestUserBySID

res = clnt.privCheckContestUserBySID(ip_str, ssl_flag, sid)

Если операция завершилась с ошибкой выбрасывается исключение IOError. Если операция завершилась успешно, то res - это словарь следующего вида:

{ 'user_id' : user_id,
  'contest_id' : contest_id,
  'locale_id' : locale_id,
  'status_str' : status_str,
  'regflags' : regflags,
  'login' : login,
  'name' : name }

privCheckPrivUser

Для проверки привилегированных пользователей по логину и паролю используется метод privCheckPrivUser

res = clnt.privLogin(ip_str, ssl_flag, contest_id, locale_id, priv_role, login, password)

Если операция завершилась с ошибкой выбрасывается исключение IOError. Если операция завершилась успешно, то res - это словарь следующего вида:

{ 'user_id' : user_id, 'sid' : sid, 'name' : name }

Возвращаемое имя пользователя name соответствует указанному турниру contest_id. Возможность пользователя user_id войти с указанным уровнем привилегий, то есть наличие у него битов полномосий MASTER_LOGIN или JUDGE_LOGIN, не проверяется. Эти проверки должны быть выполнены на стороне клиента.

privCheckPrivUserBySID

Для проверки регистрационного сессионного ключа используется метод privCheckPrivUserBySID

res = clnt.privCheckPrivUserBySID(ip_str, ssl_flag, sid)

Если операция завершилась с ошибкой выбрасывается исключение IOError. Если операция завершилась успешно, то res - это словарь следующего вида:

{ 'user_id' : user_id,
  'contest_id' : contest_id,
  'locale_id' : locale_id,
  'priv_level' : priv_level,
  'priv_role' : priv_role,
  'status_str' : status_str,
  'regflags' : regflags,
  'login' : login,
  'name' : name }