Difference between revisions of "Python: Запросы к базе пользователей"
(→privDeleteField) |
(→privCopyUserInfo) |
||
(13 intermediate revisions by the same user not shown) | |||
Line 60: | Line 60: | ||
Метод privEditField позволяет изменить поля данных пользователей. | Метод privEditField позволяет изменить поля данных пользователей. | ||
clnt.privEditField([[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. | + | При ошибке выбрасывается исключение IOError. По результатам выполнения операции может измениться значение флага Incomplete регистрации участника на турнир. |
+ | |||
+ | Для выполнения операции соединение должно быть авторизовано с уровнем привилегий не ниже JUDGE. Для измененмя поля "NN_PASSWD" необходимо полномочие EDIT_PASSWD для обычных и PRIV_EDIT_PASSWD для привилегированных пользователей уровня доступа к базе пользователей. Для изменения остальных полей "NN_*" необходимо полномочие EDIT_USER для обычных и PRIV_EDIT_USER для привилегированных пользователей уровня доступа к базе пользователей. Для изменения поля "NC_TEAM_PASSWD" необходимо полномочие EDIT_PASSWD для обычных и PRIV_EDIT_PASSWD для привилегированных пользователей уровня доступа к базе пользователей или указанному турниру. Для измененмя остальных полей "NC_*" и "NM_*" необходимо полномочие EDIT_USER для обычных и PRIV_EDIT_USER для привилегированных пользователей уровня доступа к базе пользователей или указанному турниру. | ||
+ | |||
+ | Если параметр user_id равен 0, операция выполняется над текущим пользователем. При выполнении операции для текущего пользователя никаких полномочий не требуется. | ||
==== privDeleteField ==== | ==== privDeleteField ==== | ||
Line 66: | Line 70: | ||
Метод privDeleteField позволяет очистить значение указанного поля. | Метод privDeleteField позволяет очистить значение указанного поля. | ||
clnt.privDeleteField([[Python:user_id|user_id]], [[Python:contest_id|contest_id]], [[Python:serial|serial]], [[Python:field_str|field_str]]) | clnt.privDeleteField([[Python:user_id|user_id]], [[Python:contest_id|contest_id]], [[Python:serial|serial]], [[Python:field_str|field_str]]) | ||
− | При ошибке выбрасывается исключение IOError. | + | При ошибке выбрасывается исключение IOError. По результатам выполнения операции может измениться значение флага Incomplete регистрации участника на турнир. |
Для выполнения операции соединение должно быть авторизовано с уровнем привилегий не ниже JUDGE. | Для выполнения операции соединение должно быть авторизовано с уровнем привилегий не ниже JUDGE. | ||
− | + | Для очистки поля "NN_PASSWD" необходимо полномочие EDIT_PASSWD для обычных и PRIV_EDIT_PASSWD для привилегированных пользователей уровня доступа к базе пользователей. Для очистки остальных полей "NN_*" необходимо полномочие EDIT_USER для обычных и PRIV_EDIT_USER для привилегированных пользователей уровня доступа к базе пользователей. Для очистки поля "NC_TEAM_PASSWD" необходимо полномочие EDIT_PASSWD для обычных и PRIV_EDIT_PASSWD для привилегированных пользователей уровня доступа к базе пользователей или указанному турниру. Для очистки остальных полей "NC_*" и "NM_*" необходимо полномочие EDIT_USER для обычных и PRIV_EDIT_USER для привилегированных пользователей уровня доступа к базе пользователей или указанному турниру. | |
Если параметр user_id равен 0, операция выполняется над текущим пользователем. При выполнении операции для текущего пользователя никаких полномочий не требуется. | Если параметр user_id равен 0, операция выполняется над текущим пользователем. При выполнении операции для текущего пользователя никаких полномочий не требуется. | ||
Line 77: | Line 81: | ||
Метод privCopyUserInfo позволяет скопировать регистрационные данные пользователя из одного турнира в другой. | Метод privCopyUserInfo позволяет скопировать регистрационные данные пользователя из одного турнира в другой. | ||
clnt.privCopyUserInfo([[Python:user_id|user_id]], [[Python:contest_id|contest_id_from]], [[Python:contest_id|contest_id_to]]) | clnt.privCopyUserInfo([[Python:user_id|user_id]], [[Python:contest_id|contest_id_from]], [[Python:contest_id|contest_id_to]]) | ||
− | При ошибке выбрасывается исключение IOError. | + | При ошибке выбрасывается исключение IOError. По результатам выполнения операции может измениться значение флага Incomplete регистрации участника на турнир. |
+ | |||
+ | Для выполнения операции соединение должно быть авторизовано с уровнем привилегий не ниже JUDGE. Для выполнения операции необходимы следующие полномочия: | ||
+ | * GET_USER для турнира contest_id_from | ||
+ | * EDIT_USER или PRIV_EDIT_USER для турнира contest_id_to в зависимости от того, является ли пользователь user_id привилегированным или нет | ||
+ | |||
+ | Для копирования пароль дополнительно требуется полномочия EDIT_PASSWD или PRIV_EDIT_PASSWD (в зависимости от привилегированности пользователя user_id) для турниров contest_id_from и contest_id_to. Если полномочий для копирования пароля недостаточно, операция выполняется, но копируются все поля, кроме поля team_passwd. | ||
+ | |||
+ | Пользователь считается привилегированным, если он привилегирован хотя бы в одном турнире или в базе пользователей глобально. | ||
+ | |||
+ | Если user_id равен 0, операция выполняется для текущего пользователя. | ||
==== privCreateMember ==== | ==== privCreateMember ==== | ||
Line 84: | Line 98: | ||
[[Python:serial|serial]] = clnt.privCreateMember([[Python:user_id|user_id]], [[Python:contest_id|contest_id]], [[Python:role|role]]) | [[Python:serial|serial]] = clnt.privCreateMember([[Python:user_id|user_id]], [[Python:contest_id|contest_id]], [[Python:role|role]]) | ||
При ошибке выбрасывается исключение IOError. | При ошибке выбрасывается исключение IOError. | ||
− | При успешном завершении возвращается идентификатор нового члена команды. | + | При успешном завершении возвращается идентификатор нового члена команды. По результатам выполнения операции может измениться значение флага Incomplete регистрации участника на турнир. |
+ | |||
+ | Для выполнения операции соединение должно быть авторизовано с уровнем привилегий не ниже JUDGE. Для выполнения операции над непривилегированным пользователем необходимо полномочие EDIT_USER для данного турнира. Для выполнения операции над привилегированными пользователями необходимо полномочие PRIV_EDIT_USER для данного турнира. | ||
+ | |||
+ | Если user_id равен 0, операция выполняется для текущего пользователя. Если номер турнира не равен 0, то для выполнения операции над текущим пользователем не требуется никаких полномочий. | ||
==== privDeleteMember ==== | ==== privDeleteMember ==== | ||
Line 90: | Line 108: | ||
Метод privDeleteMember позволяет удалить члена команды. | Метод privDeleteMember позволяет удалить члена команды. | ||
clnt.privDeleteMember([[Python:user_id|user_id]], [[Python:contest_id|contest_id]], [[Python:serial|serial]]) | clnt.privDeleteMember([[Python:user_id|user_id]], [[Python:contest_id|contest_id]], [[Python:serial|serial]]) | ||
− | При ошибке выбрасывается исключение IOError. | + | При ошибке выбрасывается исключение IOError. По результатам выполнения операции может измениться значение флага Incomplete регистрации участника на турнир. |
+ | |||
+ | Для выполнения операции соединение должно быть авторизовано с уровнем привилегий не ниже JUDGE. Для выполнения операции над непривилегированным пользователем необходимо полномочие EDIT_USER для данного турнира. Для выполнения операции над привилегированными пользователями необходимо полномочие PRIV_EDIT_USER для данного турнира. | ||
+ | |||
+ | Если user_id равен 0, операция выполняется для текущего пользователя. Если номер турнира не равен 0, то для выполнения операции над текущим пользователем не требуется никаких полномочий. | ||
==== privMoveMember ==== | ==== privMoveMember ==== | ||
Line 96: | Line 118: | ||
Метод privMoveMember позволяет изменить роль у указанного члена команды. | Метод privMoveMember позволяет изменить роль у указанного члена команды. | ||
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. По результатам выполнения операции может измениться значение флага Incomplete регистрации пользователя на турнир. |
+ | |||
+ | Для выполнения операции соединение должно быть авторизовано с уровнем привилегий не ниже JUDGE. | ||
+ | Для выполнения операции над непривилегированным пользователем необходимо полномочие EDIT_USER для данного турнира. | ||
+ | Для выполнения операции над привилегированными пользователями необходимо полномочие PRIV_EDIT_USER для данного турнира. | ||
+ | |||
+ | Если user_id равен 0, операция выполняется для текущего пользователя. Если номер турнира не равен 0, то для выполнения операции над текущим пользователем не требуется никаких полномочий. | ||
=== Регистрация на турниры === | === Регистрация на турниры === | ||
Line 108: | Line 136: | ||
При ошибке выбрасывается исключение IOError. | При ошибке выбрасывается исключение IOError. | ||
− | Для регистрации непривилегированных пользователей необходимо полномочие CREATE_REG. Для регистрации привилегированных пользователей необходимо полномочие PRIV_CREATE_REG. | + | Для выполнения операции соединение должно быть авторизовано с уровнем привилегий не ниже JUDGE. |
+ | Для регистрации непривилегированных пользователей необходимо полномочие CREATE_REG для данного турнира. | ||
+ | Для регистрации привилегированных пользователей необходимо полномочие PRIV_CREATE_REG для данного турнира. | ||
+ | |||
+ | Если user_id равен 0, операция выполняется для текущего пользователя. В этом случае он должен обладать полномочием PRIV_EDIT_REG. | ||
==== privForcedRegisterContest ==== | ==== privForcedRegisterContest ==== | ||
Line 118: | Line 150: | ||
При ошибке выбрасывается исключение IOError. | При ошибке выбрасывается исключение IOError. | ||
− | Для регистрации непривилегированных пользователей необходимо полномочие CREATE_REG. Для регистрации привилегированных пользователей необходимо полномочие PRIV_CREATE_REG. | + | Для выполнения операции соединение должно быть авторизовано с уровнем привилегий не ниже JUDGE. |
+ | Для регистрации непривилегированных пользователей необходимо полномочие CREATE_REG для данного турнира. | ||
+ | Для регистрации привилегированных пользователей необходимо полномочие PRIV_CREATE_REG для данного турнира. | ||
+ | |||
+ | Если user_id равен 0, операция выполняется для текущего пользователя. В этом случае он должен обладать полномочием PRIV_EDIT_REG. | ||
==== privChangeContestReg ==== | ==== privChangeContestReg ==== | ||
Line 129: | Line 165: | ||
При ошибке выбрасывается исключение IOError. | При ошибке выбрасывается исключение IOError. | ||
− | Для выполнения операции необходимо полномочие EDIT_REG для указанного турнира. | + | Для выполнения операции соединение должно быть авторизовано с уровнем привилегий не ниже JUDGE. |
+ | Для удаления регистрации (параметр status_str равен "REMOVE") необходимо полномочие DELETE_REG в данном турнире для обычного пользователя и PRIV_DELETE_REG для привилегированного пользователя. | ||
+ | Для выполнения прочих операций необходимо полномочие EDIT_REG для указанного турнира. | ||
Если user_id - привилегированный пользователь, необходимо полномочие PRIV_EDIT_REG. | Если user_id - привилегированный пользователь, необходимо полномочие PRIV_EDIT_REG. | ||
+ | |||
+ | Если user_id равен 0, операция выполняется для текущего пользователя. В этом случае он должен обладать полномочием PRIV_EDIT_REG. | ||
=== Проверка пользователей === | === Проверка пользователей === |
Latest revision as of 20:58, 3 December 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.
privDeleteUser
Метод позволяет удалить из базы пользователей указанного пользователя.
privDeleteUser(user_id)
При ошибке выбрасывается исключение IOError.
Для удаления непривилегированных пользователей необходимо полномочие DELETE_USER. Для удаления привилегированных пользователей необходимо полномочие PRIV_DELETE_USER.
Редактирование данных
privEditField
Метод privEditField позволяет изменить поля данных пользователей.
clnt.privEditField(user_id, contest_id, serial, field_str, value)
При ошибке выбрасывается исключение IOError. По результатам выполнения операции может измениться значение флага Incomplete регистрации участника на турнир.
Для выполнения операции соединение должно быть авторизовано с уровнем привилегий не ниже JUDGE. Для измененмя поля "NN_PASSWD" необходимо полномочие EDIT_PASSWD для обычных и PRIV_EDIT_PASSWD для привилегированных пользователей уровня доступа к базе пользователей. Для изменения остальных полей "NN_*" необходимо полномочие EDIT_USER для обычных и PRIV_EDIT_USER для привилегированных пользователей уровня доступа к базе пользователей. Для изменения поля "NC_TEAM_PASSWD" необходимо полномочие EDIT_PASSWD для обычных и PRIV_EDIT_PASSWD для привилегированных пользователей уровня доступа к базе пользователей или указанному турниру. Для измененмя остальных полей "NC_*" и "NM_*" необходимо полномочие EDIT_USER для обычных и PRIV_EDIT_USER для привилегированных пользователей уровня доступа к базе пользователей или указанному турниру.
Если параметр user_id равен 0, операция выполняется над текущим пользователем. При выполнении операции для текущего пользователя никаких полномочий не требуется.
privDeleteField
Метод privDeleteField позволяет очистить значение указанного поля.
clnt.privDeleteField(user_id, contest_id, serial, field_str)
При ошибке выбрасывается исключение IOError. По результатам выполнения операции может измениться значение флага Incomplete регистрации участника на турнир.
Для выполнения операции соединение должно быть авторизовано с уровнем привилегий не ниже JUDGE. Для очистки поля "NN_PASSWD" необходимо полномочие EDIT_PASSWD для обычных и PRIV_EDIT_PASSWD для привилегированных пользователей уровня доступа к базе пользователей. Для очистки остальных полей "NN_*" необходимо полномочие EDIT_USER для обычных и PRIV_EDIT_USER для привилегированных пользователей уровня доступа к базе пользователей. Для очистки поля "NC_TEAM_PASSWD" необходимо полномочие EDIT_PASSWD для обычных и PRIV_EDIT_PASSWD для привилегированных пользователей уровня доступа к базе пользователей или указанному турниру. Для очистки остальных полей "NC_*" и "NM_*" необходимо полномочие EDIT_USER для обычных и PRIV_EDIT_USER для привилегированных пользователей уровня доступа к базе пользователей или указанному турниру.
Если параметр user_id равен 0, операция выполняется над текущим пользователем. При выполнении операции для текущего пользователя никаких полномочий не требуется.
privCopyUserInfo
Метод privCopyUserInfo позволяет скопировать регистрационные данные пользователя из одного турнира в другой.
clnt.privCopyUserInfo(user_id, contest_id_from, contest_id_to)
При ошибке выбрасывается исключение IOError. По результатам выполнения операции может измениться значение флага Incomplete регистрации участника на турнир.
Для выполнения операции соединение должно быть авторизовано с уровнем привилегий не ниже JUDGE. Для выполнения операции необходимы следующие полномочия:
- GET_USER для турнира contest_id_from
- EDIT_USER или PRIV_EDIT_USER для турнира contest_id_to в зависимости от того, является ли пользователь user_id привилегированным или нет
Для копирования пароль дополнительно требуется полномочия EDIT_PASSWD или PRIV_EDIT_PASSWD (в зависимости от привилегированности пользователя user_id) для турниров contest_id_from и contest_id_to. Если полномочий для копирования пароля недостаточно, операция выполняется, но копируются все поля, кроме поля team_passwd.
Пользователь считается привилегированным, если он привилегирован хотя бы в одном турнире или в базе пользователей глобально.
Если user_id равен 0, операция выполняется для текущего пользователя.
privCreateMember
Метод privCreateMember позволяет создать члена команды.
serial = clnt.privCreateMember(user_id, contest_id, role)
При ошибке выбрасывается исключение IOError. При успешном завершении возвращается идентификатор нового члена команды. По результатам выполнения операции может измениться значение флага Incomplete регистрации участника на турнир.
Для выполнения операции соединение должно быть авторизовано с уровнем привилегий не ниже JUDGE. Для выполнения операции над непривилегированным пользователем необходимо полномочие EDIT_USER для данного турнира. Для выполнения операции над привилегированными пользователями необходимо полномочие PRIV_EDIT_USER для данного турнира.
Если user_id равен 0, операция выполняется для текущего пользователя. Если номер турнира не равен 0, то для выполнения операции над текущим пользователем не требуется никаких полномочий.
privDeleteMember
Метод privDeleteMember позволяет удалить члена команды.
clnt.privDeleteMember(user_id, contest_id, serial)
При ошибке выбрасывается исключение IOError. По результатам выполнения операции может измениться значение флага Incomplete регистрации участника на турнир.
Для выполнения операции соединение должно быть авторизовано с уровнем привилегий не ниже JUDGE. Для выполнения операции над непривилегированным пользователем необходимо полномочие EDIT_USER для данного турнира. Для выполнения операции над привилегированными пользователями необходимо полномочие PRIV_EDIT_USER для данного турнира.
Если user_id равен 0, операция выполняется для текущего пользователя. Если номер турнира не равен 0, то для выполнения операции над текущим пользователем не требуется никаких полномочий.
privMoveMember
Метод privMoveMember позволяет изменить роль у указанного члена команды.
clnt.privMoveMember(user_id, contest_id, serial, new_role)
При ошибке выбрасывается исключение IOError. По результатам выполнения операции может измениться значение флага Incomplete регистрации пользователя на турнир.
Для выполнения операции соединение должно быть авторизовано с уровнем привилегий не ниже JUDGE. Для выполнения операции над непривилегированным пользователем необходимо полномочие EDIT_USER для данного турнира. Для выполнения операции над привилегированными пользователями необходимо полномочие PRIV_EDIT_USER для данного турнира.
Если user_id равен 0, операция выполняется для текущего пользователя. Если номер турнира не равен 0, то для выполнения операции над текущим пользователем не требуется никаких полномочий.
Регистрация на турниры
privRegisterContest
Метод позволяет зарегистрировать указанного пользователя на указанный турнир.
clnt.privRegisterContest(user_id, contest_id, ip_str, ssl_flag)
При выполнении запроса проверются ограничения на IP-адрес и сроки регистрации. При ошибке выбрасывается исключение IOError.
Для выполнения операции соединение должно быть авторизовано с уровнем привилегий не ниже JUDGE. Для регистрации непривилегированных пользователей необходимо полномочие CREATE_REG для данного турнира. Для регистрации привилегированных пользователей необходимо полномочие PRIV_CREATE_REG для данного турнира.
Если user_id равен 0, операция выполняется для текущего пользователя. В этом случае он должен обладать полномочием PRIV_EDIT_REG.
privForcedRegisterContest
Метод позволяет зарегистрировать указанного пользователя на указанный турнир.
clnt.privForcedRegisterContest(user_id, contest_id)
При выполнении запроса не проверются ограничения на IP-адрес и сроки регистрации. При ошибке выбрасывается исключение IOError.
Для выполнения операции соединение должно быть авторизовано с уровнем привилегий не ниже JUDGE. Для регистрации непривилегированных пользователей необходимо полномочие CREATE_REG для данного турнира. Для регистрации привилегированных пользователей необходимо полномочие PRIV_CREATE_REG для данного турнира.
Если user_id равен 0, операция выполняется для текущего пользователя. В этом случае он должен обладать полномочием PRIV_EDIT_REG.
privChangeContestReg
Метод позволяет изменить флаги регистрации на турнир для указанного пользователя.
clnt.privChangeContestReg(user_id, contest_id, status_str, cmd_str, regflags)
Если status_str равен None, то статус регистрации не изменяется. Если cmd_str равен None, то флаги регистрации не изменяются. При ошибке выбрасывается исключение IOError.
Для выполнения операции соединение должно быть авторизовано с уровнем привилегий не ниже JUDGE. Для удаления регистрации (параметр status_str равен "REMOVE") необходимо полномочие DELETE_REG в данном турнире для обычного пользователя и PRIV_DELETE_REG для привилегированного пользователя. Для выполнения прочих операций необходимо полномочие EDIT_REG для указанного турнира. Если user_id - привилегированный пользователь, необходимо полномочие PRIV_EDIT_REG.
Если user_id равен 0, операция выполняется для текущего пользователя. В этом случае он должен обладать полномочием PRIV_EDIT_REG.
Проверка пользователей
privLookupUser
Метод privLookupUser позволяет определить существование заданного пользователя.
res = clnt.privLookupUser(login, contest_id)
При ошибке выбрасывается исключение IOError. Если пользователь с указанным регистрационным именем не существует, возвращается значение None. Если пользователь существует, возвращается словарь:
{'user_id':user_id, 'name':name}
Для выполнения операции соединение должно быть авторизовано с уровнем привилегий не ниже JUDGE. Необходимо полномочие LIST_USERS для базы пользователей или указанного турнира. Если contest_id равен 0, требуется полномочие только для базы пользователей.
privLookupUserId
Метод privLookupUserId позволяет определить существование заданного пользователя.
res = clnt.privLookupUserId(user_id, contest_id)
При ошибке выбрасывается исключение IOError. Если пользователь с указанным идентификатором не существует, возвращается значение None. Если пользователь существует, возвращается словарь:
{'login':login, 'name':name}
Для выполнения операции соединение должно быть авторизовано с уровнем привилегий не ниже JUDGE. Необходимо полномочие LIST_USERS для базы пользователей или указанного турнира. Если contest_id равен 0, требуется полномочие только для базы пользователей.
Если параметр user_id равен 0, операция выполняется над текущим пользователем. При выполнении операции для текущего пользователя никаких полномочий не требуется.
Операции с паролями
privSetPassword
Метод позволяет установить новый регистрационный пароль для пользователя.
clnt.privSetPassword(user_id, oldpwd, newpwd)
Для изменения пароля необходимо указание старого пароля. В базе пользователей пароль будет хранится в виде хеша SHA1. При ошибке выбрасывается исключение IOError.
Для выполнения операции соединение должно быть авторизовано с уровнем привилегий ADMIN. Необходимо полномочие EDIT_PASSWD для базы пользователей, если пользователь user_id непривилегированный, и полномочие PRIV_EDIT_PASSWD для базы пользователей, если пользователь user_id привилегированный.
Если параметр user_id равен 0, операция выполняется над текущим пользователем. При выполнении операции для текущего пользователя никаких полномочий не требуется.
privSetContestPassword
Метод позволяет установить новый турнирный пароль для пользователя.
clnt.privSetContestPassword(user_id, contest_id, oldpwd, newpwd)
Для изменения пароля необходимо указание старого пароля. В базе пользователей пароль будет хранится в виде хеша SHA1. При ошибке выбрасывается исключение IOError.
Для выполнения операции соединение должно быть авторизовано с уровнем привилегий ADMIN. Если пользователь user_id непривилегированный, необходимо полномочие EDIT_PASSWD для базы пользователей или для указанного турнира. Если пользователь user_id привилегированный, необходимо полномочие PRIV_EDIT_PASSWD для базы пользователей или для указаноного турнира. Если параметр contest_id равен 0, требуется только полномочие для базы пользователей.
Если параметр user_id равен 0, операция выполняется для текущего пользователя. При выполнении операции для текущего пользователя никаких полномочий не требуется.
privGenerateRandomPassword
Метод позволяет сгенерировать новый случайный регистрационный пароль. Длина случайного пароля - 8 символов.
clnt.privGenerateRandomPassword(user_id)
При ошибке выбрасывается исключение IOError.
Для выполнения операции соединение должно быть авторизовано с уровнем привилегий ADMIN. Необходимо полномочие EDIT_PASSWD для базы пользователей, если пользователь user_id непривилегированный, и полномочие PRIV_EDIT_PASSWD для базы пользователей, если пользователь user_id привилегированный.
Если параметр user_id равен 0, операция выполняется над текущим пользователем. При выполнении операции для текущего пользователя никаких полномочий не требуется.
privGenerateRandomContestPassword
Метод позволяет сгенерировать новый случайный турнирный пароль. Длина случайного пароля - 8 символов.
clnt.privGenerateRandomContestPassword(user_id, contest_id)
При ошибке выбрасывается исключение IOError.
Для выполнения операции соединение должно быть авторизовано с уровнем привилегий ADMIN. Если пользователь user_id непривилегированный, необходимо полномочие EDIT_PASSWD для базы пользователей или для указанного турнира. Если пользователь user_id привилегированный, необходимо полномочие PRIV_EDIT_PASSWD для базы пользователей или для указаноного турнира. Если параметр contest_id равен 0, требуется только полномочие для базы пользователей.
Если параметр user_id равен 0, операция выполняется для текущего пользователя. При выполнении операции для текущего пользователя никаких полномочий не требуется.
privCopyContestPasswordToPassword
Метод позволяет скопировать турнирный пароль в регистрационный пароль.
clnt.privCopyContestPasswordToPassword(user_id, contest_id)
При ошибке выбрасывается исключение IOError.
Для выполнения операции соединение должно быть авторизовано с уровнем привилегий ADMIN. Необходимо полномочие GET_USER для базы пользователей или для указанного турнира. Если пользователь user_id непривилегированный, необходимо полномочие EDIT_PASSWD для базы пользователей. Если пользователь user_id привилегированный, необходимо полномочие PRIV_EDIT_PASSWD для базы пользователей. Если параметр contest_id равен 0, требуются только привилегии для базы пользователей.
Если параметр user_id равен 0, операция выполняется для текущего пользователя. При выполнении операции для текущего пользователя никаких полномочий не требуется.
privCopyPasswordToContestPassword
Метод позволяет скопировать турнирный пароль в регистрационный пароль.
clnt.privCopyPasswordToContestPassword(user_id, contest_id)
При ошибке выбрасывается исключение IOError.
Для выполнения операции соединение должно быть авторизовано с уровнем привилегий ADMIN. Необходимо полномочие GET_USER для базы пользователей или для указанного турнира. Если пользователь user_id непривилегированный, необходимо полномочие EDIT_PASSWD для базы пользователей или для указанного турнира. Если пользователь user_id привилегированный, необходимо полномочие PRIV_EDIT_PASSWD для базы пользователей или для указанного турнира. Если параметр contest_id равен 0, требуются только полномочия базы пользователей.
Если параметр user_id равен 0, операция выполняется для текущего пользователя. При выполнении операции для текущего пользователя никаких полномочий не требуется.
privClearContestPasswords
Метод позволяет очистить турнирные пароли в указанном турнире. Сбрасываются только турнирные пароли непривилегированных пользователей у которых не установлены никакие флаги режимов регистрации.
clnt.privClearContestPasswords(contest_id)
При ошибке выбрасывается исключение IOError.
Для выполнения операции соединение должно быть авторизовано с уровнем привилегий ADMIN. Необходимо полномочие EDIT_PASSWD для базы пользователей или для указанного турнира и полномочие LIST_USERS для базы пользователей или указанного турнира.
privGenerateRandomContestPasswords
Метод позволяет сгенерировать случайные турнирные пароли. Генерируются только турнирные пароли непривилегированных пользователей у которых не установлены никакие флаги режимов регистрации.
clnt.privGenerateRandomContestPasswords(contest_id)
При ошибке выбрасывается исключение IOError.
Для выполнения операции соединение должно быть авторизовано с уровнем привилегий ADMIN. Необходимо полномочие EDIT_PASSWD для базы пользователей или для указанного турнира и полномочие LIST_USERS для базы пользователей или указанного турнира.
privGenerateRandomPasswords
Метод позволяет сгенерировать случайные регистрационные пароли. Генерируются только регистрационные пароли непривилегированных пользователей у которых не установлены никакие флаги режимов регистрации.
clnt.privGenerateRandomPasswords(contest_id)
При ошибке выбрасывается исключение IOError.
Для выполнения операции соединение должно быть авторизовано с уровнем привилегий ADMIN. Необходимо полномочие EDIT_PASSWD для базы пользователей и полномочие LIST_USERS для базы пользователей или для указанного турнира.