Полномочия пользователей

From EjudgeWiki

Навигация: Главная страница/Система ejudge/Использование/Конфигурационные файлы/Полномочия пользователей

Система ejudge поддерживает тонкую настройку прав выполнения всех привилегированных операций для пользователей системы. К привилегированным операциям относятся операции управления турниром (запуск, останов, просмотр и изменения результатов проверки программы и пр.) и операции управления базой данных пользователей. Настройка осуществляется с помощью указаний полномочий пользователя для выполнения операций над базой пользователей и полномочий пользователя для выполнения операций над каждым из созданных в системе турниров.

Пользователи, для которых указаны полномочия выполнения операций над базой пользователей, считаются привилегированными. При этом может быть указано пустое множество полномочий. Пользователи, для которых указаны полномочия выполнения операций над каким-либо турниром, являются привилегированными только для данного турнира, но не для системы в целом. Различие между общесистемно привилегированным пользователем (даже с пустым множеством привилегий) и всеми прочими пользователями состоит в том, что для выполнения операций над привилегированными пользователями требуются специальные привилегии.

Все привилегии системы ejudge перечислены ниже.

Название Бит Где Описание
MASTER_LOGIN 0 CU (C) Пользователь может использовать CGI-программу master. (U) Пользователь может использовать CGI-программу serve-control.
JUDGE_LOGIN 1 CU (C) Пользователь может использовать CGI-программу judge. (U) Пользователь может использовать CGI-программу serve-control.
SUBMIT_RUN 2 C (C) Пользователь может посылать решения, пользуясь привилегированными CGI-программами master или judge.
MAP_CONTEST 3 C Пользователь может запускать сервер турнира программу serve.
LIST_USERS 4 CU (C) Пользователь может просматривать список пользователей, зарегистрировавшихся на турнир. (U) Пользователь может просматривать список всех пользователей в базе пользователей.
PRIV_EDIT_REG 5 C Пользователь может редактировать статус регистрации привилегированных пользователей.
CREATE_USER 6 U Пользователь может создавать новых пользователей.
GET_USER 7 CU Пользователь может получать информацию о другом непривилегированном пользователе.
EDIT_USER 8 CU Пользователь может редактировать информацию о другом непривилегированном пользователе.
DELETE_USER 9 U Пользователь может удалять другого непривилегированного пользователя из базы пользователей.
PRIV_EDIT_USER 10 CU Пользователь может редактировать другого информацию о другом привилегированном пользователе.
PRIV_DELETE_USER 11 U Пользователь может удалять другого привилегированного пользователя из базы пользователей.
EDIT_CONTEST 12 C Пользователь может редактировать настройки турниров.
CREATE_REG 13 C Пользователь может регистрировать других непривилегированных пользователей для участия в турнире.
EDIT_REG 14 C Пользователь может редактировать статус регистрации других пользователей в турнире.
DELETE_REG 15 C Пользователь может удалять регистрацию других непривилегированных пользователей в турнире.
PRIV_CREATE_REG 16 C Пользователь может регистрировать других привилегированных пользователей для участия в турнире.
PRIV_DELETE_REG 17 C Пользователь может удалять регистрацию других привилегированных пользователей в турнире.
DUMP_USERS 18 CU Пользователь может получать базу пользователей в CSV-формате.
DUMP_RUNS 19 C Пользователь может получать базу попыток сдачи в CSV-формате.
DUMP_STANDINGS 20 C Пользователь может получать результаты турнира в CSV-формате.
VIEW_STANDINGS 21 C Пользователь может просматривать судейскую таблицу результатов, которая никогда не замораживается.
VIEW_SOURCE 22 C Пользователь может просматривать исходный код попыток сдачи программ участников.
VIEW_REPORT 23 C Пользователь может просматривать отчёт о тестировании программ участников.
VIEW_CLAR 24 C Пользователь может просматривать вопросы к судьям от участников и ответы судей.
EDIT_RUN 25 C Пользователь может произвольным образом изменять информацию о попытке участника.
REJUDGE_RUN 26 C Пользователь может отправить попытку участника на перетестирование.
NEW_MESSAGE 27 C Пользователь может послать сообщение произвольному участнику.
REPLY_MESSAGE 28 C Пользователь может ответить на сообщение от участника.
CONTROL_CONTEST 29 C Пользователь может управлять турниром (стартовать, останавливать и т. д.).
IMPORT_XML_RUNS 30 C Пользователь может импортировать таблицу посылок турнира в XML-формате.
PRINT_RUN 31 C Пользователь может распечатывать на принтере текст программы из-под привилегированных программ master или judge.
EDIT_PASSWORD 32 CU (C) Пользователь может изменять турнирный пароль других непривилегированных пользователей в даном турнире. (U) Пользовател может изменять любой пароль непривилегированных пользователей.
PRIV_EDIT_PASSWORD 33 CU (C) Пользователь может изменять турнирный пароль других привилегированных пользователей в даном турнире. (U) Пользовател может изменять любой пароль привилегированных пользователей.
RESTART 34 C Пользователь может стартовать или останавливать турнир.
COMMENT_RUN 35 C Пользователь может комментировать программы участников.
UNLOAD_CONTEST 36 C Пользователь может инициировать перечтение конфигурационных файлов во время турнира.

U в колонке «где» обозначает, что данный бит полномочий может использоваться в глобальном конфигурационном файле ejudge.xml, C обозначает, что данный бит полномочий может использоваться в конфигурационном файле турнира contest.xml.

Полномочия пользователей для базы данных пользователей и управления турнирами задаются в общем конфигурационном файле ejudge.xml с помощью элемента cap. В этом элементе через запятую перечисляются полномочия указанного пользователя. Пробельные символы игнорируются. Например:

<cap login="vasya">
 LIST_ALL_USERS,
 GET_USER,
</cap>

Текст в элементе cap может быть пустым, тогда множество полномочий пользователя пусто, но такой пользователь будет считаться привилегированным пользователем. Например:

<cap login="petya"/>

Полномочия пользователя по отношению к турниру задаются в конфигурационном файле турнира contest.xml с помощью элемента cap. В элементе через запятую перечисляются полномочия указанного пользователя. Пустое множество полномочий для турнира допускается, но не имеет смысла.