PageRenderTime 44ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/alliance.php

https://github.com/darkzmii/SuperNova
PHP | 181 lines | 141 code | 28 blank | 12 comment | 34 complexity | 831d6e824e38402a860143c5b581b8a3 MD5 | raw file
  1. <?php
  2. /**
  3. alliance.php
  4. Alliance manager
  5. History
  6. 2.0 - Full rewrite by Gorlum for http://supernova.ws
  7. 1.0s - Security checked for SQL-injection by Gorlum for http://supernova.ws
  8. 1.0 - copyright 2008 by Chlorel for XNova
  9. */
  10. include('common.' . substr(strrchr(__FILE__, '.'), 1));
  11. define('SN_IN_ALLY', true);
  12. // Main admin page save themes
  13. $isSaveText = !empty($_POST['isSaveText']);
  14. $isSaveOptions = !empty($_POST['isSaveOptions']);
  15. $isDisband = !empty($_POST['isDisband']);
  16. $isConfirmDisband = !empty($_POST['isConfirmDisband']);
  17. $isTransfer = !empty($_POST['isTransfer']);
  18. $edit = sys_get_param_str('edit');
  19. $mode = sys_get_param_str('mode');
  20. lng_include('alliance');
  21. if($mode == 'ainfo')
  22. {
  23. include('includes/alliance/ali_internal_default.inc');
  24. };
  25. $user_request = doquery("SELECT * FROM {{alliance_requests}} WHERE `id_user` ='{$user['id']}' LIMIT 1;", '', true);
  26. if (!$user['ally_id'])
  27. {
  28. if($user_request['id_user'])
  29. {
  30. require('includes/alliance/ali_external_request.inc');
  31. }
  32. else
  33. {
  34. switch($mode)
  35. {
  36. case 'make':
  37. require('includes/alliance/ali_external_create_ally.inc');
  38. break;
  39. case 'search':
  40. require('includes/alliance/ali_external_search.inc');
  41. break;
  42. case 'apply':
  43. require('includes/alliance/ali_external_request.inc');
  44. break;
  45. default:
  46. display(parsetemplate(gettemplate('ali_external', true)), $lang['alliance']);
  47. break;
  48. }
  49. }
  50. }
  51. elseif(!$user_request['id_user'])
  52. {
  53. $rights = array(
  54. 0 => 'name',
  55. 1 => 'mail',
  56. 2 => 'online',
  57. 3 => 'invite',
  58. 4 => 'kick',
  59. 5 => 'admin',
  60. 6 => 'forum',
  61. 7 => 'diplomacy'
  62. );
  63. $rights_old = array(
  64. 0 => 'name',
  65. 1 => 'mails',
  66. 2 => 'onlinestatus',
  67. 3 => 'bewerbungenbearbeiten',
  68. 4 => 'kick',
  69. 5 => 'rechtehand'
  70. );
  71. $ally = doquery("SELECT * FROM {{alliance}} WHERE `id` ='{$user['ally_id']}'", '', true);
  72. // This piece converting old ally data to new one
  73. // unset($ally['ranklist']);
  74. if(!$ally['ranklist'] && $ally['ally_ranks'])
  75. {
  76. $ally_ranks = unserialize($ally['ally_ranks']);
  77. $i = 0;
  78. foreach($ally_ranks as $rank_id => $rank)
  79. {
  80. foreach($rights as $key => $value)
  81. {
  82. $ranks[$i][$value] = $rank[$rights_old[$key]];
  83. }
  84. doquery("UPDATE {{users}} SET `ally_rank_id` = {$i} WHERE `ally_id` ='{$user['ally_id']}' AND `ally_rank_id`={$rank_id};", '', true);
  85. $i++;
  86. }
  87. if(!empty($ranks))
  88. {
  89. ALI_rankListSave($ranks);
  90. }
  91. }
  92. if($ally['ranklist'])
  93. {
  94. $str_ranks = explode(';', $ally['ranklist']);
  95. foreach($str_ranks as $str_rank)
  96. {
  97. if(!$str_rank)
  98. {
  99. continue;
  100. }
  101. $tmp = explode(',', $str_rank);
  102. $rank_id = count($ranks);
  103. foreach($rights as $key => $value)
  104. {
  105. $ranks[$rank_id][$value] = $tmp[$key];
  106. }
  107. }
  108. }
  109. if($ally['ally_owner'] == $user['id'])
  110. $isAllyOwner = true;
  111. if($ranks[$user['ally_rank_id']]['mail'] == 1 || $isAllyOwner)
  112. $user_can_send_mails = true;
  113. if($ranks[$user['ally_rank_id']]['forum'] == 1 || $isAllyOwner)
  114. $userCanPostForum = true;
  115. if($ranks[$user['ally_rank_id']]['online'] == 1 || $isAllyOwner)
  116. $user_onlinestatus = true;
  117. if($ranks[$user['ally_rank_id']]['invite'] == 1 || $isAllyOwner)
  118. $user_admin_applications = true;
  119. if($ranks[$user['ally_rank_id']]['kick'] == 1 || $isAllyOwner)
  120. $user_can_kick = true;
  121. if($ranks[$user['ally_rank_id']]['diplomacy'] == 1 || $isAllyOwner)
  122. $user_can_negotiate = true;
  123. if($ranks[$user['ally_rank_id']]['admin'] == 1 || $isAllyOwner)
  124. {
  125. $user_can_edit_rights = true;
  126. $user_admin = true;
  127. }
  128. if(!$ally)
  129. {
  130. doquery("UPDATE {{users}} SET `ally_id` = 0, `ally_name` = '' WHERE `id`='{$user['id']}' LIMIT 1;");
  131. message($lang['ali_sys_notFound'], $lang['your_alliance'], 'alliance.php');
  132. }
  133. switch ($mode)
  134. {
  135. case 'admin':
  136. $allianceAdminMode = true;
  137. switch($edit)
  138. {
  139. case 'rights': require('includes/alliance/ali_internal_admin_rights.inc'); break;
  140. case 'members': require('includes/alliance/ali_internal_memberlist.inc'); break;
  141. case 'requests': require('includes/alliance/ali_internal_admin_request.inc'); break;
  142. case 'diplomacy': require('includes/alliance/ali_internal_admin_diplomacy.inc'); break;
  143. default: require('includes/alliance/ali_internal_admin.inc'); break;
  144. }
  145. break;
  146. case 'exit': require('includes/alliance/ali_internal_exit.inc'); break;
  147. case 'memberslist': require('includes/alliance/ali_internal_memberlist.inc'); break;
  148. case 'circular': require('includes/alliance/ali_internal_admin_mail.inc'); break;
  149. default: require('includes/alliance/ali_internal_default.inc'); break;
  150. }
  151. }
  152. ?>