Несоблюдение ограничений
В контесте типа Kirov я дал пользователю доступ к интерфейсу судьи(new-judge) с такими правами
JUDGE_LOGIN,LIST_USERS,GET_USER,
VIEW_STANDINGS,VIEW_REPORT,
А на самом деле пользователь может читать сообщения и даже отправлять их.
Как решить такую проблему?
Версия ejudge: 2.3.27
JUDGE_LOGIN,LIST_USERS,GET_USER,
VIEW_STANDINGS,VIEW_REPORT,
А на самом деле пользователь может читать сообщения и даже отправлять их.
Как решить такую проблему?
Версия ejudge: 2.3.27
Re: Несоблюдение ограничений
Сейчас перепроверил: читать сообщения не может.
Отправлять сообщения может, это будет исправлено в следующей версии.
Отправлять сообщения может, это будет исправлено в следующей версии.
Re: Несоблюдение ограничений
Вы проверяли по последней версии в SVN?
Я не могу скомпилировать тот код, потому вопрос: когда будет след. версия?
Я не могу скомпилировать тот код, потому вопрос: когда будет след. версия?
Re: Несоблюдение ограничений
Я посмотрел код последней версии из SVN и вот что интересно:
проверки на права при отображении нет, а при отправке - есть(проверка при самой отправке, форму отправки показывает всегда).
(если я смотрел правильно - new_server_html.c)
При том у вас отправлять может, а читать - нет. А у меня вообще может все.
проверки на права при отображении нет, а при отправке - есть(проверка при самой отправке, форму отправки показывает всегда).
(если я смотрел правильно - new_server_html.c)
При том у вас отправлять может, а читать - нет. А у меня вообще может все.
Re: Несоблюдение ограничений
Должно все компилироваться. Напишите сообщения об ошибках.
Re: Несоблюдение ограничений
Загружал так:
svn checkout https://ejudge.ru/svn/ejudge/trunk/ejudge
./configure
make
ej-polygon.c: В функции «process_login_page»:
ej-polygon.c:1420:38: ошибка: доступ по указателю на неполный тип
ej-polygon.c: В функции «process_contests_page»:
ej-polygon.c:1672:38: ошибка: доступ по указателю на неполный тип
ej-polygon.c: В функции «process_contest_page»:
ej-polygon.c:1715:38: ошибка: доступ по указателю на неполный тип
ej-polygon.c: В функции «do_work»:
ej-polygon.c:2943:5: предупреждение: неявная декларация функции «ends_with» [-Wimplicit-function-declaration]
ej-polygon.c:2943:25: ошибка: доступ по указателю на неполный тип
ej-polygon.c:2945:20: ошибка: доступ по указателю на неполный тип
ej-polygon.c:2946:14: ошибка: доступ по указателю на неполный тип
ej-polygon.c:2946:48: ошибка: доступ по указателю на неполный тип
ej-polygon.c: На верхнем уровне:
ej-polygon.c:683:1: предупреждение: «get_curl_download_interface» определена, но нигде не используется [-Wunused-function]
ej-polygon.c:821:1: предупреждение: «get_zip_interface» определена, но нигде не используется [-Wunused-function]
svn checkout https://ejudge.ru/svn/ejudge/trunk/ejudge
./configure
make
ej-polygon.c: В функции «process_login_page»:
ej-polygon.c:1420:38: ошибка: доступ по указателю на неполный тип
ej-polygon.c: В функции «process_contests_page»:
ej-polygon.c:1672:38: ошибка: доступ по указателю на неполный тип
ej-polygon.c: В функции «process_contest_page»:
ej-polygon.c:1715:38: ошибка: доступ по указателю на неполный тип
ej-polygon.c: В функции «do_work»:
ej-polygon.c:2943:5: предупреждение: неявная декларация функции «ends_with» [-Wimplicit-function-declaration]
ej-polygon.c:2943:25: ошибка: доступ по указателю на неполный тип
ej-polygon.c:2945:20: ошибка: доступ по указателю на неполный тип
ej-polygon.c:2946:14: ошибка: доступ по указателю на неполный тип
ej-polygon.c:2946:48: ошибка: доступ по указателю на неполный тип
ej-polygon.c: На верхнем уровне:
ej-polygon.c:683:1: предупреждение: «get_curl_download_interface» определена, но нигде не используется [-Wunused-function]
ej-polygon.c:821:1: предупреждение: «get_zip_interface» определена, но нигде не используется [-Wunused-function]
Re: Несоблюдение ограничений
gcc (Ubuntu/Linaro 4.7.3-1ubuntu1) 4.7.3
glib-2.36.0
glib-2.36.0
Re: Несоблюдение ограничений
исправлено.
но у Вас не установлены libcurl-devel и/или libzip-devel. Имеет смысл их установить, чтобы была функциональна программа ej-polygon для импорта задач из системы полигон.
но у Вас не установлены libcurl-devel и/или libzip-devel. Имеет смысл их установить, чтобы была функциональна программа ej-polygon для импорта задач из системы полигон.
Re: Несоблюдение ограничений
Спасибо за исправление, исправил код под свои нужды (часть с ограничениями).
Re: Несоблюдение ограничений
А что за исправления Вы сделали, если не секрет? Возможно, они были бы полезны другим пользователям.
Re: Несоблюдение ограничений
Просто это не единственное исправление в том файле (еще одно - реализация ограничения посылок по каждой задаче отдельно), потому нужно было время отделить.
Вот, собственно, различия:
Теперь правильно работают ограничения VIEW_CLAR, NEW_MESSAGE, REPLY_MESSAGE.
Я проверил, но стоит проверить еще.
Это исправление касается последней версии из SVN.
Вот, собственно, различия:
Code: Select all
--- ejudge/new_server_html.c 2013-10-21 20:20:08.608115328 +0300
+++ ejudge-new/new_server_html.c 2013-10-21 19:40:18.012099014 +0300
@@ -9031,38 +9031,39 @@ priv_main_page(FILE *fout,
prob = 0;
}
}
-
- ns_write_all_clars(fout, phr, cnts, extra, filter_mode_clar,
- filter_first_clar_str, filter_last_clar_str);
-
- fprintf(fout, "<hr><h2>%s</h2>", _("Compose a message to all participants"));
- html_start_form(fout, 1, phr->self_url, phr->hidden_vars);
- fprintf(fout, "<table>\n"
- "<tr>"
- "<td>%s:</td>"
- "<td><input type=\"text\" size=\"16\" name=\"msg_dest_id\"/></td>"
- "</tr>\n"
- "<tr>"
- "<td>%s:</td>"
- "<td><input type=\"text\" size=\"32\" name=\"msg_dest_login\"/></td>"
- "</tr>\n"
- "<tr>"
- "<td>%s:</td>"
- "<td><input type=\"text\" size=\"64\" name=\"msg_subj\"/></td>"
- "</tr>\n",
- _("To user id"),
- _("To user login"),
- _("Subject"));
- if (start_time <= 0) {
- fprintf(fout, "<tr><td>%s</td><td><select name=\"msg_hide_flag\"><option value=\"0\">NO</option><option value=\"1\">YES</option></select></td></tr>\n",
- _("Do not show before the contest starts?"));
+
+ if (opcaps_check(phr->caps, OPCAP_VIEW_CLAR) >= 0)
+ ns_write_all_clars(fout, phr, cnts, extra, filter_mode_clar,
+ filter_first_clar_str, filter_last_clar_str);
+ if (opcaps_check(phr->caps, OPCAP_NEW_MESSAGE) >= 0) {
+ fprintf(fout, "<hr><h2>%s</h2>", _("Compose a message to all participants"));
+ html_start_form(fout, 1, phr->self_url, phr->hidden_vars);
+ fprintf(fout, "<table>\n"
+ "<tr>"
+ "<td>%s:</td>"
+ "<td><input type=\"text\" size=\"16\" name=\"msg_dest_id\"/></td>"
+ "</tr>\n"
+ "<tr>"
+ "<td>%s:</td>"
+ "<td><input type=\"text\" size=\"32\" name=\"msg_dest_login\"/></td>"
+ "</tr>\n"
+ "<tr>"
+ "<td>%s:</td>"
+ "<td><input type=\"text\" size=\"64\" name=\"msg_subj\"/></td>"
+ "</tr>\n",
+ _("To user id"),
+ _("To user login"),
+ _("Subject"));
+ if (start_time <= 0) {
+ fprintf(fout, "<tr><td>%s</td><td><select name=\"msg_hide_flag\"><option value=\"0\">NO</option><option value=\"1\">YES</option></select></td></tr>\n",
+ _("Do not show before the contest starts?"));
+ }
+ fprintf(fout, "</table>\n"
+ "<p><textarea name=\"msg_text\" rows=\"20\" cols=\"60\">"
+ "</textarea></p>"
+ "<p>%s\n</form>\n",
+ BUTTON(NEW_SRV_ACTION_PRIV_SUBMIT_CLAR));
}
- fprintf(fout, "</table>\n"
- "<p><textarea name=\"msg_text\" rows=\"20\" cols=\"60\">"
- "</textarea></p>"
- "<p>%s\n</form>\n",
- BUTTON(NEW_SRV_ACTION_PRIV_SUBMIT_CLAR));
-
/* change the password */
fprintf(fout, "<hr><a name=\"chgpasswd\"></a>\n<%s>%s</%s>\n",
/*cnts->priv_head_style*/ "h2",
Я проверил, но стоит проверить еще.
Это исправление касается последней версии из SVN.
Re: Несоблюдение ограничений
Спасибо. Однако данное исправление просто отключает показ соответствующих таблиц, если нет прав.
На возможность выполнения действий это не влияет (в предположении, что пользователь знает прямой URL
на посылку сообщений).
На возможность выполнения действий это не влияет (в предположении, что пользователь знает прямой URL
на посылку сообщений).
Re: Несоблюдение ограничений
Я знаю, оно временное. Разбираться в вашем коде у меня пока времени нет. Что бы такое сделать (с отправкой) нужно потрудиться.
Я ожидаю, что в след. версии это будет исправлено.
Хотя я уже пользуюсь своим другим патчем уже полгода, а в SVN до сих пор нет реализации этого.
Спасибо.
Я ожидаю, что в след. версии это будет исправлено.
Хотя я уже пользуюсь своим другим патчем уже полгода, а в SVN до сих пор нет реализации этого.
Спасибо.
Re: Несоблюдение ограничений
Так при отправке все права уже проверяются.hotsnr wrote:Я знаю, оно временное. Разбираться в вашем коде у меня пока времени нет. Что бы такое сделать (с отправкой) нужно потрудиться.
Я ожидаю, что в след. версии это будет исправлено.
О чем идет речь?hotsnr wrote:Хотя я уже пользуюсь своим другим патчем уже полгода, а в SVN до сих пор нет реализации этого.
Спасибо.
Re: Несоблюдение ограничений
viewtopic.php?f=5&t=1768
Я работал с ним по системе Kirov.
На других не пробовал, но работать должно.
Глюков вроде не замечал, хотя, опять же, стоит проверить.
У вас в последней версии появился параметр конфигурации, но он не реализован вот уже сколько.
Я тогда же его написал.
Я работал с ним по системе Kirov.
На других не пробовал, но работать должно.
Глюков вроде не замечал, хотя, опять же, стоит проверить.
У вас в последней версии появился параметр конфигурации, но он не реализован вот уже сколько.
Я тогда же его написал.