Difference between revisions of "Python: Запросы к базе пользователей"
(→Редактирование данных) |
|||
Line 48: | Line 48: | ||
=== Редактирование данных === | === Редактирование данных === | ||
− | ==== | + | ==== privEditField ==== |
− | Метод | + | Метод privEditField позволяет изменить поля данных пользователей. |
− | clnt. | + | 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: Запросы к базе пользователей.
Contents
Получение информации о пользователях
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.