BUGFIX: fix password for password recovery (was not random enough)
[e-DoKo.git] / include / cancelgame.php
1 <?php
2 /* Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Arun Persaud <arun@nubati.net>
3  *
4  *   This file is part of e-DoKo.
5  *
6  *   e-DoKo is free software: you can redistribute it and/or modify
7  *   it under the terms of the GNU General Public License as published by
8  *   the Free Software Foundation, either version 3 of the License, or
9  *   (at your option) any later version.
10  *
11  *   e-DoKo is distributed in the hope that it will be useful,
12  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
13  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  *   GNU General Public License for more details.
15  *
16  *   You should have received a copy of the GNU General Public License
17  *   along with e-DoKo.  If not, see <http://www.gnu.org/licenses/>.
18  *
19  */
20
21 /* make sure that we are not called from outside the scripts,
22  * use a variable defined in config.php to check this
23  */
24 if(!isset($HOST))
25   exit;
26
27 /* you should only get here from a game page, so $me should be set */
28 if(!myisset("me"))
29   {
30     echo "Hmm, you really shouldn't mess with the urls.<br />\n";
31     return;
32   }
33
34 $me = $_REQUEST["me"];
35
36 /* test for valid ID */
37 $myid = DB_get_userid('hash',$me);
38 if(!$myid)
39   {
40     echo "Can't find you in the database, please check the url.<br />\n";
41     echo "perhaps the game has been canceled, check by login in <a href=\"$INDEX\">here</a>.";
42     return;
43   }
44
45 DB_update_user_timestamp($myid);
46
47 /* get some information from the DB */
48 $gameid   = DB_get_gameid_by_hash($me);
49 $myname   = DB_get_name('hash',$me);
50
51 /* check if game really is old enough to be canceled */
52 $r = DB_query_array("SELECT mod_date from Game WHERE id=".DB_quote_smart($gameid) );
53 if(time()-strtotime($r[0]) > 60*60*24*30) /* = 1 month */
54   {
55     /* email to all players */
56     $userids = DB_get_all_userid_by_gameid($gameid);
57     foreach($userids as $user)
58       {
59         set_language($user, 'uid');
60         $message = sprintf(_('Game %s has been canceled since nothing happend for a while and %s requested it.'),DB_format_gameid($gameid),$myname)."\n\n";
61
62         mymail($user,$gameid, GAME_CANCELED_TIMEOUT, $message);
63       }
64     set_language($myid, 'uid');
65
66     /* set gamestatus to canceled */
67     cancel_game('timedout',$gameid);
68
69     echo '<p style="background-color:red";>'.
70       sprintf(_('Game %s has been canceled.'),DB_format_gameid($gameid)).
71       "<br /><br /></p>\n";
72   }
73  else /* game can't be canceled yet */
74    echo "<p>"._('You need to wait longer before you can cancel a game...')."</p>\n";
75 ?>