Difference between revisions of "Python: Запросы к базе пользователей"

From EjudgeWiki
(Редактирование данных)
Line 48: Line 48:
 
=== Редактирование данных ===
 
=== Редактирование данных ===
  
==== editField ====
+
==== privEditField ====
  
Метод editField позволяет изменить поля данных пользователей.
+
Метод privEditField позволяет изменить поля данных пользователей.
  clnt.editField([[Python:user_id|user_id]], [[Python:contest_id|contest_id]], [[Python:serial|serial]], [[Python:field_str|field_str]], [[Python:value|value]])
+
  clnt.privEditField([[Python:user_id|user_id]], [[Python:contest_id|contest_id]], [[Python:serial|serial]], [[Python:field_str|field_str]], [[Python:value|value]])
 +
При ошибке выбрасывается исключение IOError.
 +
 
 +
==== privDeleteField ====
 +
 
 +
Метод privDeleteField позволяет сбросить значение указанного поля.
 +
clnt.privDeleteField([[Python:user_id|user_id]], [[Python:contest_id|contest_id]], [[Python:serial|serial]], [[Python:field_str|field_str]])
 +
При ошибке выбрасывается исключение IOError.
 +
 
 +
==== privCopyUserInfo ====
 +
 
 +
Метод privCopyUserInfo позволяет скопировать регистрационные данные пользователя из одного турнира в другой.
 +
clnt.privCopyUserInfo([[Python:user_id|user_id]], [[Python:contest_id|contest_id_from]], [[Python:contest_id|contest_id_to]])
 +
При ошибке выбрасывается исключение IOError.
 +
 
 +
==== privCreateMember ====
 +
 
 +
Метод privCreateMember позволяет создать члена команды.
 +
clnt.privCreateMember([[Python:user_id|user_id]], [[Python:contest_id|contest_id]], [[Python:role|role]])
 +
При ошибке выбрасывается исключение IOError.
 +
 
 +
FIXME: нужно возвращать serial созданного члена команды.
 +
 
 +
==== privDeleteMember ====
 +
 
 +
Метод privDeleteMember позволяет удалить члена команды.
 +
clnt.privDeleteMember([[Python:user_id|user_id]], [[Python:contest_id|contest_id]], [[Python:serial|serial]])
 
При ошибке выбрасывается исключение IOError.
 
При ошибке выбрасывается исключение IOError.

Revision as of 13:15, 25 November 2007

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

Получение информации о пользователях

listAllUsers

Метод listAllUsers позволяет получить список всех пользователей в базе пользователей.

str = clnt.listAllUsers()

При ошибке выбрасывается исключение IOError. При успехе возвращается строка str, содержащая список всех пользователей в формате XML.

listContestUsers

Метод listContestUsers позволяет получить список всех пользователей, зарегистрированных на заданный турнир.

str = clnt.listContestUsers(contest_id)

При ошибке выбрасывается исключение IOError. При успехе возвращается строка str, содержащая список всех пользователей в формате XML.

getContestUsers

Метод getContestUsers позволяет получить полную информацию о всех пользователях, зарегистрированных на заданный турнир.

str = clnt.getContestUsers(contest_id)

При ошибке выбрасывается исключение IOError. При успехе возвращается строка str, содержащая информацию о пользователях в формате XML.

getUserInfo

Метод getUserInfo позволяет получить информацию о пользователе, авторизованном на данном подключении к серверу. Метод доступен непривилегированным пользователям.

str = clnt.getUserInfo(contest_id)

При ошибке выбрасывается исключение IOError. При успехе возвращается строка str, содержащая информацию о пользователях в формате XML.

privGetUserInfo

Метод privGetUserInfo позволяет получить информацию о произвольном пользователе. Метод доступен только привилегированным пользователям.

str = clnt.privGetUserInfo(user_id, contest_id)

При ошибке выбрасывается исключение IOError. При успехе возвращается строка str, содержащая информацию о пользователях в формате XML.

При получении общей информации (contest_id равен 0) у пользователя, выполняющего запрос, должен быть установлен глобальный бит полномочий GET_USER. При получении информации о турнире (contest_id больше 0) у пользователя, выполняющего запрос, должен быть установлен бит полномочий GET_USER либо глобальный, либо для данного турнира.

Создание новых пользователей

createUser

Метод createUser позволяет создать нового пользователя в базе пользователей.

user_id = clnt.createUser(login)

login - это регистрационное има создаваемого пользователя. Логин может быть равен пустой строке или None, в этом случае логин для создаваемого пользователя будет сгенерирован автоматически по шаблону New_login, New_login_2 ... При ошибке выбрасывается исключение IOError. При успехе возвращается идентификатор нового пользователя.

Метод доступен только привилегированным пользователям, для которых установлен глобальный бит полномочий CREATE_USER.

Редактирование данных

privEditField

Метод privEditField позволяет изменить поля данных пользователей.

clnt.privEditField(user_id, contest_id, serial, field_str, value)

При ошибке выбрасывается исключение IOError.

privDeleteField

Метод privDeleteField позволяет сбросить значение указанного поля.

clnt.privDeleteField(user_id, contest_id, serial, field_str)

При ошибке выбрасывается исключение IOError.

privCopyUserInfo

Метод privCopyUserInfo позволяет скопировать регистрационные данные пользователя из одного турнира в другой.

clnt.privCopyUserInfo(user_id, contest_id_from, contest_id_to)

При ошибке выбрасывается исключение IOError.

privCreateMember

Метод privCreateMember позволяет создать члена команды.

clnt.privCreateMember(user_id, contest_id, role)

При ошибке выбрасывается исключение IOError.

FIXME: нужно возвращать serial созданного члена команды.

privDeleteMember

Метод privDeleteMember позволяет удалить члена команды.

clnt.privDeleteMember(user_id, contest_id, serial)

При ошибке выбрасывается исключение IOError.