X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=NDWeb%2FPages%2FRaids.pm;h=2382a8fed360ac0503ca26f7da1123f6433afc2f;hb=1ac7abba88180254eaf3a65e1aded1c6d7c42576;hp=ac1f6b9f936cb2127ef0b30eef885724fdf48b9d;hpb=f539657a3047bdf3d65d87a635b6741bcf72f025;p=ndwebbie.git diff --git a/NDWeb/Pages/Raids.pm b/NDWeb/Pages/Raids.pm index ac1f6b9..2382a8f 100644 --- a/NDWeb/Pages/Raids.pm +++ b/NDWeb/Pages/Raids.pm @@ -119,13 +119,18 @@ sub render_body { my $target = param('target'); my $wave = param('wave'); - my $findtarget = $DBH->prepare("SELECT rt.id FROM raid_targets rt NATURAL JOIN raid_access ra NATURAL JOIN groupmembers where uid = ? AND id = ?"); + $DBH->begin_work; + my $findtarget = $DBH->prepare(q{SELECT rt.id FROM raid_targets rt + NATURAL JOIN raid_access ra NATURAL JOIN groupmembers + WHERE uid = ? AND id = ? + FOR UPDATE + }); my $result = $DBH->selectrow_array($findtarget,undef,$ND::UID,$target); if ($result != $target){ + $DBH->rollback; return $self->noAccess; } - $DBH->begin_work; if (param('cmd') eq 'Claim'){ my $claims = $DBH->prepare(qq{SELECT username FROM raid_claims NATURAL JOIN users WHERE target = ? AND wave = ?}); $claims->execute($target,$wave);