Skip to content

Commit e065592

Browse files
authored
Merge pull request #1054 from proditis/master
make sure team instances respect approved players all around
2 parents 8f80d4b + e9a7326 commit e065592

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

contrib/echoctf_updown_mysql.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ if [ "$script_type" == "client-connect" ]; then
3030
done
3131
# Add to private instances of our own and our team mates
3232
TEAM_VISIBLE_INSTANCES=$(echo "get sysconfig:team_visible_instances"|nc ${NCOPTS} ${MEMD} 11211 |egrep -v "(VALUE|END)")
33-
TEAMS_QUERY="SELECT LOWER(CONCAT(t2.name,'_',player_id)) AS net FROM target_instance as t1 LEFT JOIN target as t2 on t1.target_id=t2.id WHERE player_id=${common_name} or player_id IN (SELECT player_id from team_player WHERE team_id IN (SELECT team_id FROM team_player where player_id=${common_name} and approved=1))"
33+
TEAMS_QUERY="SELECT LOWER(CONCAT(t2.name,'_',player_id)) AS net FROM target_instance as t1 LEFT JOIN target as t2 on t1.target_id=t2.id WHERE player_id=${common_name} or player_id IN (SELECT player_id from team_player WHERE team_id IN (SELECT team_id FROM team_player where player_id=${common_name}) and approved=1)"
3434
if [ "$TEAM_VISIBLE_INSTANCES" == "" ]; then
35-
TEAMS_QUERY="SELECT LOWER(CONCAT(t2.name,'_',player_id)) AS net FROM target_instance as t1 LEFT JOIN target as t2 on t1.target_id=t2.id WHERE player_id=${common_name} or (player_id IN (SELECT player_id from team_player WHERE team_id IN (SELECT team_id FROM team_player where player_id=${common_name} and approved=1)) AND team_allowed=1)"
35+
TEAMS_QUERY="SELECT LOWER(CONCAT(t2.name,'_',player_id)) AS net FROM target_instance as t1 LEFT JOIN target as t2 on t1.target_id=t2.id WHERE player_id=${common_name} or (player_id IN (SELECT player_id from team_player WHERE team_id IN (SELECT team_id FROM team_player where player_id=${common_name}) and approved=1) AND team_allowed=1)"
3636
fi
3737
for network in $(mysql -h ${DBHOST} -u"${DBUSER}" -p"${DBPASS}" echoCTF -NBe "$TEAMS_QUERY");do
3838
/sbin/pfctl -t "${network}_clients" -T add ${ifconfig_pool_remote_ip}
@@ -50,9 +50,9 @@ elif [ "$script_type" == "client-disconnect" ]; then
5050
/sbin/pfctl -t "${network}_clients" -T delete ${ifconfig_pool_remote_ip}
5151
done
5252
TEAM_VISIBLE_INSTANCES=$(echo "get sysconfig:team_visible_instances"|nc ${NCOPTS} ${MEMD} 11211 |egrep -v "(VALUE|END)")
53-
TEAMS_QUERY="SELECT LOWER(CONCAT(t2.name,'_',player_id)) AS net FROM target_instance as t1 LEFT JOIN target as t2 on t1.target_id=t2.id WHERE player_id=${common_name} or player_id IN (SELECT player_id from team_player WHERE team_id IN (SELECT team_id FROM team_player where player_id=${common_name} and approved=1))"
53+
TEAMS_QUERY="SELECT LOWER(CONCAT(t2.name,'_',player_id)) AS net FROM target_instance as t1 LEFT JOIN target as t2 on t1.target_id=t2.id WHERE player_id=${common_name} or player_id IN (SELECT player_id from team_player WHERE team_id IN (SELECT team_id FROM team_player where player_id=${common_name}) and approved=1)"
5454
if [ "$TEAM_VISIBLE_INSTANCES" == "" ]; then
55-
TEAMS_QUERY="SELECT LOWER(CONCAT(t2.name,'_',player_id)) AS net FROM target_instance as t1 LEFT JOIN target as t2 on t1.target_id=t2.id WHERE player_id=${common_name} or (player_id IN (SELECT player_id from team_player WHERE team_id IN (SELECT team_id FROM team_player where player_id=${common_name} and approved=1)) AND team_allowed=1)"
55+
TEAMS_QUERY="SELECT LOWER(CONCAT(t2.name,'_',player_id)) AS net FROM target_instance as t1 LEFT JOIN target as t2 on t1.target_id=t2.id WHERE player_id=${common_name} or (player_id IN (SELECT player_id from team_player WHERE team_id IN (SELECT team_id FROM team_player where player_id=${common_name}) and approved=1) AND team_allowed=1)"
5656
fi
5757

5858
for network in $(mysql -h ${DBHOST} -u"${DBUSER}" -p"${DBPASS}" echoCTF -NBe "$TEAMS_QUERY");do

frontend/modules/team/controllers/DefaultController.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,9 @@ public function actionView($token)
144144
'pagination' => false,
145145
]);
146146
$teamPlayers = ArrayHelper::getColumn($TP->all(),'player_id');
147-
$teamInstances = \app\modules\target\models\TargetInstance::find()->andFilterWhere(['player_id'=>$teamPlayers]);
147+
$teamInstances = \app\modules\target\models\TargetInstance::find()->leftJoin('team_player','target_instance.player_id=team_player.player_id')
148+
->andFilterWhere(['in','target_instance.player_id',$teamPlayers])
149+
->andFilterWhere(['team_player.approved'=>1]);
148150
if(\Yii::$app->sys->team_visible_instances!==true)
149151
{
150152
$teamInstances->andFilterWhere(['team_allowed'=>1]);
@@ -193,7 +195,10 @@ public function actionMine()
193195
'pagination' => false,
194196
]);
195197
$teamPlayers = ArrayHelper::getColumn(Yii::$app->user->identity->team->players,'id');
196-
$teamInstances = \app\modules\target\models\TargetInstance::find()->andFilterWhere(['player_id'=>$teamPlayers]);
198+
$teamInstances = \app\modules\target\models\TargetInstance::find()->leftJoin('team_player','target_instance.player_id=team_player.player_id')
199+
->andFilterWhere(['player_id'=>$teamPlayers])
200+
->andFilterWhere(['team_player.approved'=>1]);
201+
197202
if(\Yii::$app->sys->team_visible_instances!==true)
198203
{
199204
$teamInstances->andFilterWhere(['team_allowed'=>1]);

0 commit comments

Comments
 (0)