Exemplo n.º 1
0
 public static function canEditTeam($userId, $raidId, $teamId)
 {
     $teamMemberOrSuper = $teamId == CSql::userTeamId($userId, $raidId) || CSql::userAdmin($userId) || CSql::userModerator($userId, $raidId);
     if (!$teamMemberOrSuper) {
         return false;
     }
     $raidStage = CSql::raidStage($raidId);
     //$teamOutOfRange = CSql::teamOutOfRange($teamId);
     return $raidStage < 2;
 }
Exemplo n.º 2
0
        print "</div>\n";
    }
    mysql_free_result($Result);
    print "</td></tr>\n";
}
// Закончили вывод списка участников
// ============ Новый участник
// Возможность добавлять участников заканчивается вместе с возможностью создавать команды
// Обычный пользователь может добавлять новых участников при редактировании своей команды
// Модератор/Администратор могут создавать новые команды с другим участником вместо себя
//if (($AllowEdit == 1) && CanCreateTeam($Administrator, $Moderator, $OldMmb, $RaidStage, $TeamOutOfRange) &&
//	(($viewmode <> "Add") || $Moderator || $Administrator))
// 21.03.2016 Определяем, когда можно добавлять нового пользователя
// при добавлении команды можно только можераторам или администраторам
// при правке - в зависимости от типа команды
if ($viewmode != 'Add' and ($TeamId == CSql::userTeamId($UserId, $RaidId) or CSql::userAdmin($UserId) or CSql::userModerator($UserId, $RaidId)) and !CSql::teamOutOfRange($TeamId) and CSql::raidStage($RaidId) < 2 or $viewmode != 'Add' and ($TeamId == CSql::userTeamId($UserId, $RaidId) or CSql::userAdmin($UserId) or CSql::userModerator($UserId, $RaidId)) and CSql::teamOutOfRange($TeamId) and CSql::raidStage($RaidId) < 7 or $viewmode == 'Add' and (CSql::userAdmin($UserId) or CSql::userModerator($UserId, $RaidId)) and CSql::raidStage($RaidId) < 7) {
    print '<tr><td class="input" style="padding-top: 10px;">' . "\n";
    // Предупредим команды в зачете о том, что они могут добавлять участников только до закрытия регистрации
    if ($TeamUser and !$TeamOutOfRange) {
        print 'Добавление новых участников в команду разрешено до ' . $RegistrationEnd . ".<br/>\n";
        print 'После этой даты они могут участвовать в ММБ только в виде самостоятельной команды вне зачета.<br/>' . "\n";
    }
    print '<input type="text" name="NewTeamUserEmail" size="50" value="Email нового участника" tabindex="' . ++$TabIndex . '"' . CMmbUI::placeholder('Email нового участника') . 'title="Укажите e-mail пользователя, которого Вы хотите добавить в команду. Пользователь может запретить добавлять себя в команду в настройках своей учетной записи.">' . "\n";
    print "</td></tr>\n";
}
// 20/02/2014 Пользовательское соглашение
if ($viewmode == "Add" && $AllowEdit == 1) {
    print '<tr><td class="input" style="padding-top: 10px; font-size: 80%;">' . "\n";
    print '<b>Условия участия (выдержка из <a href="' . $RaidRulesLink . '">положения</a>):</b><br/>' . "\n";
    // Ищем последнее пользовательское соглашение
    $sql = "select rf.raidfile_id, rf.raidfile_name\n\t\tfrom RaidFiles rf\n\t\twhere rf.raidfile_hide = 0 and rf.filetype_id = 8\n\t\torder by rf.raid_id DESC, rf.raidfile_id DESC\n\t\tLIMIT 0,1";
Exemplo n.º 3
0
print '</select>' . "\r\n";
/*
=====================================
*/
// Режим отображения результатов
$ResultViewMode = mmb_validate($_REQUEST, 'ResultViewMode', '');
print '</div>' . "\r\n";
print '<div align="left" style="margin-top:10px; margin-bottom:10px; font-size: 100%;">' . "\r\n";
$ReglamentLink = CSql::raidFileLink($RaidId, 1, true);
if (!empty($ReglamentLink)) {
    print '<a style="font-size:80%; margin-right: 15px;" href="' . $ReglamentLink . '" title="Основные правила ММБ" target = "_blank">Положение</a>' . "\r\n";
}
if ($UserId and $RaidId and CRights::canCreateTeam($UserId, $RaidId)) {
    print '<a  style="font-size:80%; margin-right: 15px;"  href="javascript:NewTeam();" title="Регистрация команды на ММБ">Заявить команду</a>' . "\r\n";
}
$teamId = CSql::userTeamId($UserId, $RaidId);
if ($teamId) {
    $sql = "select COALESCE(t.team_num, 0) as team_num\n\t\t\tfrom  Teams t\n\t\t\twhere t.team_hide = 0 and t.team_id = {$teamId}";
    $teamNum = (int) CSql::singleValue($sql, 'team_num');
    if ($teamNum) {
        print "<a style=\"font-size:80%; margin-right: 15px;\" href=\"#{$teamNum}\" title=\"Переход к строке Вашей команды\">Моя команда</a>\r\n";
    }
}
$StartLink = CSql::raidFileLink($RaidId, 10, true);
if (!empty($StartLink)) {
    print '<a style="font-size:80%; margin-right: 15px;" href="' . $StartLink . '" title="Информация о месте и порядке старта ММБ" target = "_blank">Старт</a>' . "\r\n";
}
print '<a style="font-size:80%; margin-right: 15px;" href="?links&RaidId=' . $RaidId . '" title="Страница впечатлений: отчеты, фотографии, треки...">Впечатления</a>' . "\r\n";
print '<a style="font-size:80%; margin-right: 15px;" href="?files&RaidId=' . $RaidId . '" title="Все материалы ММБ: положение, карты, легенды...">Материалы</a>' . "\r\n";
print '<a style="font-size:80%; margin-right: 15px;" href="javascript: JsonExport();">Json</a> ' . "\r\n";
// можем / нужно ли показывать карты?
Exemplo n.º 4
0
Arquivo: menu.php Projeto: se-ti/mmb
echo '0 ';
echo !CSql::userTeamId($UserId, $RaidId);
echo '1 ';
echo CSql::userAdmin($UserId);
echo '2 ';
echo CSql::userModerator($UserId, $RaidId);
echo '3 ';
echo CSql::raidStage($RaidId);
echo '4 ';
*/
if ($UserId and $RaidId and (!CSql::userTeamId($UserId, $RaidId) or CSql::userAdmin($UserId) or CSql::userModerator($UserId, $RaidId)) and CSql::raidStage($RaidId) >= 1 and CSql::raidStage($RaidId) < 7) {
    print '<tr><td><a href="javascript:NewTeam();" title="Регистрация новой команды на выбранный выше ММБ">Новая команда</a></td></tr>' . "\r\n";
}
// !! реализовать показ ссылки на свою команду, если она существует !!
if (CSql::userTeamId($UserId, $RaidId)) {
    print '<tr><td><a href="' . $MyPHPScript . '?TeamId=' . CSql::userTeamId($UserId, $RaidId) . '" title="Просмотр карточки Вашей команды">Моя команда</a></td></tr>' . "\r\n";
}
// Команды
print '<tr><td><a href="?RaidId=' . $RaidId . '" title="Список зарегистрированных команд для выбранного выше ММБ">Команды</a></td></tr>' . "\r\n";
// Файлы
print '<tr><td><a href="?files&RaidId=' . $RaidId . '" title="Ссылки на карты, легенды и т.п. для выбранного выше ММБ">Файлы</a></td></tr>' . "\r\n";
// Впечатления
print '<tr><td><a href="?links&RaidId=' . $RaidId . '" title="Список впечатлений для выбранного выше ММБ">Впечатления</a></td></tr>' . "\r\n";
// Ввод/Правка марш-броска
if ($Administrator) {
    print '<tr><td><a href="javascript:NewRaid();" title="Создание марш-броска">Новый марш-бросок</a></td></tr>' . "\r\n";
    print '<tr><td><a href="javascript:ViewRaidInfo();" title="Параметры марш-броска">Марш-бросок</a></td></tr>' . "\r\n";
    print '<tr><td><a href="javascript:ViewAdminModeratorsPage();" title="Список модераторов">Модераторы</a></td></tr>' . "\r\n";
    print '<tr><td><a href="javascript:ViewUserUnionPage();" title="Администрирование заявок на слияние">Слияние пользователей</a></td></tr>' . "\r\n";
}
// КП, точки сканирования, задание амнистий, импорт-экспорт, пересчет, объединение команд
Exemplo n.º 5
0
         setViewError('Пользователь запретил добавлять себя в команду другим пользователям.');
         return;
     }
     // Проверка на наличие пользователя в другой команде
     $sql = "select count(*) as result\n\t\t\tfrom TeamUsers tu\n\t\t\t\tinner join Teams t on tu.team_id = t.team_id\n\t\t\t\tinner join Distances d on t.distance_id = d.distance_id\n\t\t\twhere teamuser_hide = 0 and d.raid_id = {$RaidId} and user_id = {$NewUserId}";
     if (CSql::singleValue($sql, 'result') > 0) {
         $NewUserId = 0;
         setViewError('Пользователь с таким email уже включен в другую команду');
         return;
     }
     // 19.05.2013 внёс изменения, чтобы разрешить регистрацию вне зачета
     //
     //if (!CanCreateTeam($Administrator, $Moderator, $OldMmb, $RaidStage, $TeamOutOfRange))
     // Проверка на право добавить нового пользователя пользователя
     // флаг вне зачета не проверяется для добавления команды, так как он устанавливается позже при записи
     if (!($action == 'TeamChangeData' and ($TeamId == CSql::userTeamId($UserId, $RaidId) or CSql::userAdmin($UserId) or CSql::userModerator($UserId, $RaidId)) and !CSql::teamOutOfRange($TeamId) and CSql::raidStage($RaidId) < 2 or $action == 'TeamChangeData' and ($TeamId == CSql::userTeamId($UserId, $RaidId) or CSql::userAdmin($UserId) or CSql::userModerator($UserId, $RaidId)) and CSql::teamOutOfRange($TeamId) and CSql::raidStage($RaidId) < 7 or $action == 'AddTeam' and ($NewUserId == $UserId or CSql::userAdmin($UserId) or CSql::userModerator($UserId, $RaidId)) and CSql::raidStage($RaidId) < 7)) {
         $NewUserId = 0;
         setViewError('Добавление новых участников закрыто');
         return;
     }
 } else {
     // Проверяем, что для новой команды передали email участника
     if ($action == "AddTeam") {
         $NewUserId = 0;
         setViewError('Для новой команды должен быть указан email участника.');
         return;
     }
     $NewUserId = 0;
 }
 // Конец проверки на корректную передачу email
 // 19.05.2013 внёс изменения, чтобы разрешить регистрацию вне зачета