PageRenderTime 43ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/modules/clanmgr/clanmgr.php

http://lansuite.googlecode.com/
PHP | 274 lines | 207 code | 57 blank | 10 comment | 75 complexity | 8b1d1813cebf63d22cd2fb1b54582c04 MD5 | raw file
Possible License(s): LGPL-3.0, AGPL-1.0, LGPL-2.1
  1. <?php
  2. function ShowRole ($role) {
  3. global $auth, $line;
  4. if ($role) $ret = t('Clan-Admin');
  5. else $ret = t('Clan-Mitglied');
  6. if (($_GET['clanid'] == $auth['clanid'] and $auth['clanadmin']) or $auth['type'] > 1) $ret = '<a href="index.php?mod=clanmgr&action=clanmgr&step=50&clanid='. $_GET['clanid'] .'&userid='. $line['userid'] .'">'. $ret .'</a>';
  7. return $ret;
  8. }
  9. function CheckClanPW ($clanpw) {
  10. global $db, $auth;
  11. $clan = $db->qry_first("SELECT password FROM %prefix%clan WHERE clanid = %int%", $_GET['clanid']);
  12. if ($clan['password'] and $clan['password'] == md5($clanpw)) return true;
  13. return false;
  14. }
  15. function CheckExistingClan() {
  16. global $auth, $db, $func;
  17. $clanuser = $db->qry_first("SELECT clanid FROM %prefix%user WHERE userid=%int%", $auth['userid']);
  18. if($clanuser["clanid"] == NULL | $clanuser["clanid"] == 0)
  19. return true;
  20. else
  21. {
  22. $func->error(t('Bevor du einen neuen Clan anlegen kannst, musst du aus deinem aktuellen Clan austreten.'), "index.php?mod=clanmgr");
  23. return false;
  24. }
  25. }
  26. function CountAdmins() {
  27. global $auth, $db, $func;
  28. $query_admins = $db->qry("SELECT * FROM %prefix%user WHERE clanid = %int% AND clanadmin = 1",$_GET['clanid']);
  29. return $db->num_rows($query_admins);
  30. }
  31. function Update($id) {
  32. global $auth, $db, $func;
  33. if(!$_GET['clanid']) {
  34. $func->log_event(t('Clan %1 erstellt', $_POST['name']), 1, t('clanmgr'));
  35. if($db->qry("UPDATE %prefix%user SET clanid = %int%, clanadmin = 1 WHERE userid =%int%", $id, $auth["userid"]))
  36. $func->confirmation(t('Der Clan wurde erfolgreich angelegt. Als Ersteller hast du die Rolle Admin in diesem Clan.'), "index.php?mod=clanmgr");
  37. }
  38. }
  39. function link_to_clan($clan_url) {
  40. if ($clan_url== '') return '';
  41. if (substr($clan_url, 0, 7) != 'http://' and substr($clan_url, 0, 8) != 'https://') $clan_url = "http://".$clan_url;
  42. return '<a href="'. $clan_url .'" target="_blank">'. $clan_url .'</a>';
  43. }
  44. switch ($_GET['step']) {
  45. default:
  46. include_once('modules/mastersearch2/class_mastersearch2.php');
  47. $ms2 = new mastersearch2('clanmgr');
  48. $ms2->query['from'] = "%prefix%clan AS c
  49. LEFT JOIN %prefix%user AS u ON c.clanid = u.clanid";
  50. $ms2->config['EntriesPerPage'] = 20;
  51. #$ms2->AddBGColor('c.clanid', array($auth['clanid'] => 'ff0000'));
  52. $ms2->AddTextSearchField(t('Clanname'), array('c.name' => '1337', 'c.url' => 'like'));
  53. $ms2->AddTextSearchDropDown(t('Mitglieder'), 'COUNT(u.clanid)', array('' => t('Alle'), '0' => t('Ohne Mitglieder'), '>1' => t('Mit Mitglieder')));
  54. $ms2->AddResultField(t('Clanname'), 'c.name');
  55. $ms2->AddResultField(t('Webseite'), 'c.url', 'link_to_clan');
  56. $ms2->AddResultField(t('Mitglieder'), 'COUNT(u.clanid) AS members');
  57. $ms2->AddIconField('details', 'index.php?mod=clanmgr&step=2&clanid=', t('Clan-Details'));
  58. if ($auth['type'] >= 2) $ms2->AddIconField('change_pw', 'index.php?mod=clanmgr&step=10&clanid=', t('Passwort ändern'));
  59. if ($auth['type'] >= 2) $ms2->AddIconField('edit', 'index.php?mod=clanmgr&step=30&clanid=', t('Editieren'));
  60. if ($auth['type'] >= 3) $ms2->AddIconField('delete', 'index.php?mod=clanmgr&step=20&clanid=', t('Löschen'));
  61. if ($auth['type'] >= 3) $ms2->AddMultiSelectAction(t('Löschen'), 'index.php?mod=clanmgr&step=20', 1);
  62. $ms2->PrintSearch('index.php?mod=clanmgr', 'c.clanid');
  63. if ($auth['type'] >= 1)$dsp->AddSingleRow($dsp->FetchSpanButton(t('Hinzufügen'), 'index.php?mod=clanmgr&step=30'));
  64. break;
  65. // Details
  66. case 2:
  67. $row = $db->qry_first('SELECT name, url, clanlogo_path FROM %prefix%clan WHERE clanid = %int%', $_GET['clanid']);
  68. if (func::chk_img_path($row['clanlogo_path'])) $dsp->AddDoubleRow(t(''), '<img src="'. $row['clanlogo_path'] .'" alt="'.$row['name'].'">');
  69. $dsp->AddDoubleRow(t('Clan'), $row['name']);
  70. if(stristr($row['url'], 'http://') === FALSE) $row['url'] = "http://".$row['url'];
  71. $dsp->AddDoubleRow(t('Webseite'), '<a href="'. $row['url'] .'" target="_blank">'. $row['url'] .'</a>');
  72. $buttons = '';
  73. if ($auth['type'] >= 1 and $auth['clanid'] != $_GET['clanid']) $buttons .= $dsp->FetchSpanButton(t('Clan beitreten'), 'index.php?mod='. $_GET['mod'] .'&step=60&clanid='. $_GET['clanid']).' ';
  74. if ($auth['type'] >= 1 and $auth['clanid'] == $_GET['clanid']) $buttons .= $dsp->FetchSpanButton(t('Clan verlassen'), 'index.php?mod='. $_GET['mod'] .'&step=40&clanid='. $_GET['clanid'].'&userid='.$auth['userid']).' ';
  75. if (($auth['type'] >= 1 and $auth['clanid'] == $_GET['clanid'] and $auth['clanadmin'] == 1) or $auth['type'] >= 2) $buttons .= $dsp->FetchSpanButton(t('Clan editieren'), 'index.php?mod='. $_GET['mod'] .'&step=30&clanid='. $_GET['clanid']).' ';
  76. if (($auth['type'] >= 1 and $auth['clanid'] == $_GET['clanid'] and $auth['clanadmin'] == 1) or $auth['type'] >= 2) $buttons .= $dsp->FetchSpanButton(t('Passwort ändern'), 'index.php?mod='. $_GET['mod'] .'&step=10&clanid='. $_GET['clanid']).' ';
  77. $dsp->AddDoubleRow('',$buttons);
  78. $dsp->AddFieldSetStart(t('Mitglieder'));
  79. include_once('modules/mastersearch2/class_mastersearch2.php');
  80. $ms2 = new mastersearch2('clanmgr');
  81. $ms2->query['from'] = "%prefix%user AS u";
  82. $ms2->query['where'] = "u.clanid = ". (int)$_GET['clanid'];
  83. $ms2->config['EntriesPerPage'] = 100;
  84. $ms2->AddSelect('u.firstname');
  85. $ms2->AddSelect('u.name');
  86. $ms2->AddResultField(t('Benutzername'), 'u.username', 'UserNameAndIcon');
  87. if (!$cfg['sys_internet'] or $auth['type'] > 1 or $auth['clanid'] == $_GET['clanid']) {
  88. $ms2->AddResultField(t('Vorname'), 'u.firstname', '');
  89. $ms2->AddResultField(t('Nachname'), 'u.name', '');
  90. }
  91. $ms2->AddResultField(t('Rolle'), 'u.clanadmin', 'ShowRole');
  92. $ms2->AddIconField('details', 'index.php?mod=usrmgr&action=details&userid=', t('Clan-Details'));
  93. if ($auth['type'] >= 3 | ($auth['clanid'] == $_GET['clanid'] & $auth['clanadmin'] == 1)) $ms2->AddIconField('delete', 'index.php?mod=clanmgr&action=clanmgr&step=40&clanid='. $_GET['clanid'] .'&userid=', t('Löschen'));
  94. $ms2->PrintSearch('index.php?mod=clanmgr&action=clanmgr&step=2', 'u.userid');
  95. $dsp->AddFieldSetEnd();
  96. $dsp->AddBackButton('index.php?mod=clanmgr&action=clanmgr');
  97. include('inc/classes/class_mastercomment.php');
  98. new Mastercomment('Clan', $_GET['clanid'], '');
  99. break;
  100. // Change clan password
  101. case 10:
  102. if($_GET['clanid'] == '') $func->error(t('Keine Clan-ID angegeben!'), "index.php?mod=home");
  103. elseif ($_GET['clanid'] != $auth['clanid'] and $auth['type'] < 2) $func->information(t('Du bist nicht berechtigt das Passwort dieses Clans zu ändern'), "index.php?mod=home");
  104. else {
  105. include_once('inc/classes/class_masterform.php');
  106. $mf = new masterform();
  107. if ($auth['type'] < 2) $mf->AddField(t('Dezeitiges Passwort'), 'old_password', IS_PASSWORD, '', FIELD_OPTIONAL, 'CheckClanPW');
  108. $mf->AddField(t('Neues Passwort'), 'password', IS_NEW_PASSWORD);
  109. if ($mf->SendForm('index.php?mod=clanmgr&action=clanmgr&step=10', 'clan', 'clanid', $_GET['clanid'])) {
  110. include_once("modules/mail/class_mail.php");
  111. $mail = new mail();
  112. // Send information mail to all clan members
  113. $clanuser = $db->qry("SELECT userid, username, email FROM %prefix%user WHERE clanid=%int%", $_GET['clanid']);
  114. while ($data = $db->fetch_array($clanuser)) {
  115. $mail->create_mail($auth['userid'], $data['userid'], t('Clanpasswort geändert'), t('Das Clanpasswort wurde durch den Benutzer %1 in "%2" geändert', array($auth['username'], $_POST['password_original'])));
  116. $mail->create_inet_mail($data['username'], $data['email'], t('Clanpasswort geändert'), t('Das Clanpasswort wurde durch den Benutzer %1 in "%2" geändert', array($auth['username'], $_POST['password_original'])), $cfg["sys_party_mail"]);
  117. }
  118. $func->log_event(t('Das Clanpasswort wurde durch den Benutzer %1 geändert', $auth['username']), 1, t('clanmgr'));
  119. }
  120. }
  121. break;
  122. // Delete
  123. case 20:
  124. if ($auth['type'] >= 3) {
  125. if ($_GET['clanid']) $_POST['action'][$_GET['clanid']] = 1;
  126. if ($_POST['action']) foreach ($_POST['action'] as $key => $val) {
  127. $db->qry("DELETE FROM %prefix%clan WHERE clanid = %string%", $key);
  128. $db->qry("UPDATE %prefix%user SET clanid = 0 WHERE clanid = %string%", $key);
  129. }
  130. $func->confirmation(t('Löschen erfolgreich'), 'index.php?mod=clanmgr&action=clanmgr');
  131. }
  132. break;
  133. // Add - Edit
  134. case 30:
  135. // if ($_GET['clanid'] == '') $func->error(t('Keine Clan-ID angegeben!'), "index.php?mod=home");
  136. if ($_GET['clanid'] != '' and !($_GET['clanid'] == $auth['clanid'] and $auth['clanadmin'] == 1) and $auth['type'] < 2) $func->information(t('Du bist nicht berechtigt diesen Clan zu ändern'), "index.php?mod=home");
  137. else {
  138. include_once('inc/classes/class_masterform.php');
  139. $mf = new masterform();
  140. $dsp->AddFieldsetStart(t('Clan-Daten'));
  141. $mf->AddField(t('Clanname'), 'name');
  142. if(!$_GET['clanid']) $mf->AddField(t('Beitritts Passwort'), 'password', IS_NEW_PASSWORD);
  143. $mf->AddField(t('Webseite'), 'url', '', '', FIELD_OPTIONAL);
  144. $mf->AddField(t('Clanlogo'), 'clanlogo_path', IS_FILE_UPLOAD, 'ext_inc/clan/'. $auth['userid'] .'_', FIELD_OPTIONAL);
  145. if (!$_GET['clanid']) $mf->CheckBeforeInserFunction = 'CheckExistingClan';
  146. $mf->AdditionalDBUpdateFunction = 'Update';
  147. $mf->SendForm('index.php?mod=clanmgr&step='. $_GET['step'], 'clan', 'clanid', $_GET['clanid']);
  148. $dsp->AddFieldsetEnd();
  149. if ($_GET['clanid'] != '')
  150. {
  151. $dsp->AddFieldsetStart(t('Mitglieder'));
  152. include_once('modules/mastersearch2/class_mastersearch2.php');
  153. $ms2 = new mastersearch2('clanmgr');
  154. $ms2->query['from'] = "%prefix%user AS u";
  155. $ms2->query['where'] = 'u.clanid = '. (int)$_GET['clanid'];
  156. $ms2->config['EntriesPerPage'] = 20;
  157. $ms2->AddResultField(t('Vorname'), 'u.firstname');
  158. $ms2->AddResultField(t('Nachname'), 'u.name');
  159. $ms2->AddResultField(t('Benutzername'), 'u.username');
  160. $ms2->AddResultField(t('Rolle'), 'u.clanadmin', 'ShowRole');
  161. $ms2->AddIconField('delete', 'index.php?mod=clanmgr&action=clanmgr&step=40&clanid='. $_GET['clanid'] .'&userid=', t('Löschen'));
  162. $ms2->PrintSearch('index.php?mod=clanmgr&action=clanmgr&step=30&clanid='. $_GET['clanid'] .'&userid=', 'u.userid');
  163. $dsp->AddFieldsetEnd();
  164. }
  165. $dsp->AddBackButton('index.php?mod=clanmgr&action=clanmgr');
  166. }
  167. break;
  168. // Delete Member
  169. case 40:
  170. if ($_GET['clanid'] == '') $func->error(t('Keine Clan-ID angegeben!'), "index.php?mod=home");
  171. elseif(CountAdmins() == 1 and $auth['clanadmin'] == 1) {$func->information(t('Löschen nicht möglich. Du bist der einzige Clan-Admin in diesem Clan. Benne bitte vorher einen weiteren Admin.'), 'index.php?mod=clanmgr&action=clanmgr&step=2&clanid='. $_GET['clanid']);}
  172. elseif (($_GET['clanid'] == $auth['clanid'] and $auth['clanadmin'] == 1) or ($_GET['clanid'] == $auth['clanid'] and $_GET['userid'] = $auth['userid']) or $auth['type'] > 2) {
  173. $db->qry("UPDATE %prefix%user SET clanid = 0 WHERE userid = %int%", $_GET['userid']);
  174. $func->confirmation(t('Löschen erfolgreich'), 'index.php?mod=clanmgr&action=clanmgr&step=2&clanid='. $_GET['clanid']);
  175. } else $func->information(t('Du bist nicht berechtigt Mitglieder aus diesem Clan zu entfernen'), "index.php?mod=home");
  176. break;
  177. // Change role
  178. case 50:
  179. if ($_GET['clanid'] == '') $func->error(t('Keine Clan-ID angegeben!'), "index.php?mod=home");
  180. elseif (($_GET['clanid'] == $auth['clanid'] and $auth['clanadmin']) or $auth['type'] > 1) {
  181. $cur_role = $db->qry_first("SELECT username, clanadmin FROM %prefix%user WHERE clanid = %int% AND userid = %int%", $_GET['clanid'], $_GET['userid']);
  182. if ($cur_role['clanadmin'] and CountAdmins() == 1) $func->information(t('Du kannst %1 nicht die Admin Rolle entziehen, da %1 z.z das einzige Mitglied mit der Rolle Clan-Admin ist. Benenne bitte vorher einen anderen Admin.', $cur_role['username']), "index.php?mod=clanmgr&step=2&clanid=".$_GET["clanid"]);
  183. elseif ($cur_role['clanadmin']) {
  184. $db->qry("UPDATE %prefix%user SET clanadmin = 0 WHERE userid = %int%", $_GET['userid']);
  185. $func->confirmation(t('Benutzer %1 ist nun kein Clan-Admin mehr',$cur_role['username']), 'index.php?mod=clanmgr&action=clanmgr&step=2&clanid='. $_GET['clanid']);
  186. } else {
  187. $db->qry("UPDATE %prefix%user SET clanadmin = 1 WHERE userid = %int%", $_GET['userid']);
  188. $func->confirmation(t('Benutzer %1 ist nun Clan-Admin',$cur_role['username']), 'index.php?mod=clanmgr&action=clanmgr&step=2&clanid='. $_GET['clanid']);
  189. }
  190. } else $func->information(t('Du bist nicht berechtigt die Berehtigung dieses Nutzers zu verändern'), "index.php?mod=home");
  191. break;
  192. //Clan beitreten
  193. case 60:
  194. if ($_GET['clanid'] == '') $func->error(t('Keine Clan-ID angegeben!'), "index.php?mod=home");
  195. elseif ($auth["type"] < 1) $func->error(t('Keine Berechtigung diese Funktion auszuführen'), "index.php?mod=home");
  196. elseif(!$_POST['clan_pass'])
  197. {
  198. $dsp->SetForm("index.php?mod=clanmgr&action=clanmgr&step=60&clanid=".$_GET['clanid']);
  199. $dsp->AddSingleRow(t('Um den Clan beizutreten, musst du das Clanpasswort eingeben. Solltest du dies nicht kennen, wenden dich bitte an deinen Clan-Admin.'));
  200. $dsp->AddPasswordRow("clan_pass", t('Clan Passwort'), $_POST['clan_pass'], $mail_error);
  201. $dsp->AddFormSubmitRow("send");
  202. $dsp->AddBackButton("index.php?mod=clanmgr&action=clanmgr&step=2&clanid=".$_GET['clanid'], "usrmgr/pwremind");
  203. }
  204. else
  205. {
  206. if(CheckClanPW($_POST['clan_pass']))
  207. {
  208. $db->qry("UPDATE %prefix%user SET clanid = %int%, clanadmin = 0 WHERE userid =%int%", $_GET['clanid'], $auth["userid"]);
  209. $tmpclanname = $db->qry_first("SELECT name FROM %prefix%clan WHERE clanid = %int%", $_GET['clanid']);
  210. $func->confirmation(t('Du bist erfolgreich dem Clan beigetreten.'), "index.php?mod=clanmgr&action=clanmgr&step=2&clanid=".$_GET['clanid']);
  211. $func->log_event(t('%1 ist dem Clan %2 beigetreten', $auth['username'], $tmpclanname['name']), 1, t('clanmgr'));
  212. }
  213. else
  214. $func->error(t('Das eingegebene Clanpasswort ist falsch.'), "index.php?mod=clanmgr&action=clanmgr&step=60&clanid=".$_GET['clanid']);
  215. }
  216. }
  217. ?>