Difference between revisions of "Python: Запросы к базе пользователей"
(→privCreateUser) |
|||
Line 84: | Line 84: | ||
clnt.privMoveMember([[Python:user_id|user_id]], [[Python:contest_id|contest_id]], [[Python:serial|serial]], [[Python:role|new_role]]) | clnt.privMoveMember([[Python:user_id|user_id]], [[Python:contest_id|contest_id]], [[Python:serial|serial]], [[Python:role|new_role]]) | ||
При ошибке выбрасывается исключение IOError. | При ошибке выбрасывается исключение IOError. | ||
+ | |||
+ | === Регистрация на турниры === | ||
+ | |||
+ | ==== privRegisterContest ==== | ||
+ | |||
+ | Метод позволяет зарегистрировать указанного пользователя на указанный турнир. | ||
+ | clnt.privRegisterContest([[Python:user_id|user_id]], [[Python:contest_id|contest_id]], [[Python:ip_str|ip_str]], [[Python:ssl_flag|ssl_flag]]) | ||
+ | При выполнении запроса проверются ограничения на IP-адрес и сроки | ||
+ | регистрации. | ||
+ | При ошибке выбрасывается исключение IOError. | ||
+ | |||
+ | Для регистрации непривилегированных пользователей необходимо полномочие CREATE_REG. Для регистрации привилегированных пользователей необходимо полномочие PRIV_CREATE_REG. | ||
+ | |||
+ | ==== privForcedRegisterContest ==== | ||
+ | |||
+ | Метод позволяет зарегистрировать указанного пользователя на указанный турнир. | ||
+ | clnt.privForcedRegisterContest([[Python:user_id|user_id]], [[Python:contest_id|contest_id]]) | ||
+ | При выполнении запроса не проверются ограничения на IP-адрес и сроки | ||
+ | регистрации. | ||
+ | При ошибке выбрасывается исключение IOError. | ||
+ | |||
+ | Для регистрации непривилегированных пользователей необходимо полномочие CREATE_REG. Для регистрации привилегированных пользователей необходимо полномочие PRIV_CREATE_REG. | ||
+ | |||
+ | ==== privChangeContestReg ==== | ||
+ | |||
+ | Метод позволяет изменить флаги регистрации на турнир для указанного | ||
+ | пользователя. | ||
+ | clnt.privChangeContestReg([[Python:user_id|user_id]], [[Python:contest_id|contest_id]], [[Python:status_str|status_str]], [[Python:cmd_str|cmd_str]], [[Python:regflags|regflags]]) | ||
+ | Если status_str равен None, то статус регистрации не изменяется. | ||
+ | Если cmd_str равен None, то флаги регистрации не изменяются. | ||
+ | При ошибке выбрасывается исключение IOError. | ||
+ | |||
+ | Для выполнения операции необходимо полномочие EDIT_REG для указанного турнира. | ||
+ | Если user_id - привилегированный пользователь, необходимо полномочие PRIV_EDIT_REG. | ||
+ | |||
+ | === Проверка пользователей === | ||
+ | |||
+ | ==== lookupUser ==== | ||
+ | |||
+ | Метод lookupUser позволяет определить существование заданного пользователя. | ||
+ | res = clnt.lookupUser([[Python:login|login]], [[Python:contest_id|contest_id]]) | ||
+ | При ошибке выбрасывается исключение IOError. | ||
+ | Если пользователь с указанным регистрационным именем не существует, | ||
+ | возвращается значение None. | ||
+ | Если пользователь существует, возвращается словарь: | ||
+ | {'user_id':[[Python:user_id|user_id]], 'name':[[Python:name|name]]} | ||
+ | |||
+ | ==== lookupUserId ==== | ||
+ | |||
+ | Метод lookupUserId позволяет определить существование заданного пользователя. | ||
+ | res = clnt.lookupUserId([[Python:user_id|user_id]], [[Python:contest_id|contest_id]]) | ||
+ | При ошибке выбрасывается исключение IOError. | ||
+ | Если пользователь с указанным идентификатором не существует, | ||
+ | возвращается значение None. | ||
+ | Если пользователь существует, возвращается словарь: | ||
+ | {'login':[[Python:login|login]], 'name':[[Python:name|name]]} |
Revision as of 07:06, 29 November 2007
Навигация: Главная страница/Система ejudge/Расширение/Доступ к ejudge из программ на Питоне/Python: Работа с базой пользователей/Python: Запросы к базе пользователей.
Contents
Получение информации о пользователях
privListAllUsers
Метод privListAllUsers позволяет получить список всех пользователей в базе пользователей.
str = clnt.privListAllUsers()
При ошибке выбрасывается исключение IOError. При успехе возвращается строка str, содержащая список всех пользователей в формате XML.
privListContestUsers
Метод privListContestUsers позволяет получить список всех пользователей, зарегистрированных на заданный турнир.
str = clnt.privListContestUsers(contest_id)
При ошибке выбрасывается исключение IOError. При успехе возвращается строка str, содержащая список всех пользователей в формате XML.
privGetContestUsers
Метод privGetContestUsers позволяет получить полную информацию о всех пользователях, зарегистрированных на заданный турнир.
str = clnt.privGetContestUsers(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 либо глобальный, либо для данного турнира.
Создание новых пользователей
privCreateUser
Метод privCreateUser позволяет создать нового пользователя в базе пользователей.
user_id = clnt.privCreateUser(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 позволяет создать члена команды.
serial = clnt.privCreateMember(user_id, contest_id, role)
При ошибке выбрасывается исключение IOError. При успешном завершении возвращается идентификатор нового члена команды.
privDeleteMember
Метод privDeleteMember позволяет удалить члена команды.
clnt.privDeleteMember(user_id, contest_id, serial)
При ошибке выбрасывается исключение IOError.
privMoveMember
Метод privMoveMember позволяет изменить роль у указанного члена команды.
clnt.privMoveMember(user_id, contest_id, serial, new_role)
При ошибке выбрасывается исключение IOError.
Регистрация на турниры
privRegisterContest
Метод позволяет зарегистрировать указанного пользователя на указанный турнир.
clnt.privRegisterContest(user_id, contest_id, ip_str, ssl_flag)
При выполнении запроса проверются ограничения на IP-адрес и сроки регистрации. При ошибке выбрасывается исключение IOError.
Для регистрации непривилегированных пользователей необходимо полномочие CREATE_REG. Для регистрации привилегированных пользователей необходимо полномочие PRIV_CREATE_REG.
privForcedRegisterContest
Метод позволяет зарегистрировать указанного пользователя на указанный турнир.
clnt.privForcedRegisterContest(user_id, contest_id)
При выполнении запроса не проверются ограничения на IP-адрес и сроки регистрации. При ошибке выбрасывается исключение IOError.
Для регистрации непривилегированных пользователей необходимо полномочие CREATE_REG. Для регистрации привилегированных пользователей необходимо полномочие PRIV_CREATE_REG.
privChangeContestReg
Метод позволяет изменить флаги регистрации на турнир для указанного пользователя.
clnt.privChangeContestReg(user_id, contest_id, status_str, cmd_str, regflags)
Если status_str равен None, то статус регистрации не изменяется. Если cmd_str равен None, то флаги регистрации не изменяются. При ошибке выбрасывается исключение IOError.
Для выполнения операции необходимо полномочие EDIT_REG для указанного турнира. Если user_id - привилегированный пользователь, необходимо полномочие PRIV_EDIT_REG.
Проверка пользователей
lookupUser
Метод lookupUser позволяет определить существование заданного пользователя.
res = clnt.lookupUser(login, contest_id)
При ошибке выбрасывается исключение IOError. Если пользователь с указанным регистрационным именем не существует, возвращается значение None. Если пользователь существует, возвращается словарь:
{'user_id':user_id, 'name':name}
lookupUserId
Метод lookupUserId позволяет определить существование заданного пользователя.
res = clnt.lookupUserId(user_id, contest_id)
При ошибке выбрасывается исключение IOError. Если пользователь с указанным идентификатором не существует, возвращается значение None. Если пользователь существует, возвращается словарь:
{'login':login, 'name':name}