PageRenderTime 47ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/admin/user.php

https://github.com/whale2/users
PHP | 156 lines | 132 code | 23 blank | 1 comment | 23 complexity | 1fc9727b9b4d3b0ae274fca451f8c0ad MD5 | raw file
  1. <?php
  2. require_once(dirname(__FILE__).'/admin.php');
  3. if (!array_key_exists('id', $_GET) || !$_GET['id']) {
  4. header("HTTP/1.0 400 User ID is not specified");
  5. ?><h1>400 User ID is not specified</h1><?php
  6. exit;
  7. }
  8. $user = User::getUser($_GET['id']);
  9. if (is_null($user)) {
  10. header("HTTP/1.0 404 User Not Found");
  11. ?><h1>404 User Not Found</h3><?php
  12. exit;
  13. }
  14. if (array_key_exists("savefeatures", $_POST)) {
  15. $features_to_set = array();
  16. if (array_key_exists("feature", $_POST) && is_array($_POST['feature'])) {
  17. foreach (array_keys($_POST['feature']) as $featureid) {
  18. $feature = Feature::getByID($featureid);
  19. if (!is_null($feature) && $feature->isEnabled()) {
  20. $features_to_set[] = $feature;
  21. }
  22. }
  23. }
  24. $user->setFeatures($features_to_set);
  25. }
  26. if (array_key_exists("activate", $_POST)) {
  27. $user->setStatus(true);
  28. $user->save();
  29. }
  30. if (array_key_exists("deactivate", $_POST)) {
  31. $user->setStatus(false);
  32. $user->save();
  33. }
  34. #$ADMIN_SECTION = 'registrations';
  35. require_once(dirname(__FILE__).'/header.php');
  36. ?>
  37. <h2>User information: <?php echo UserTools::escape($user->getName()); ?></h2>
  38. <p><b>Email:</b>
  39. <?php
  40. $email = $user->getEmail();
  41. if ($email) {
  42. ?><a href="mailto:<?php echo urlencode(UserTools::escape($email)) ?>"><?php echo UserTools::escape($email) ?></a><?php
  43. } else {
  44. ?><i>not specified</i><?php
  45. }
  46. ?></p>
  47. <p><b>Total points:</b> <?php echo $user->getPoints(); ?> (<a href="activity.php?userid=<?php echo $user->getID() ?>">see activity</a>)
  48. </p>
  49. <h2>Status</h2>
  50. <?php
  51. if ($user->isDisabled()) {
  52. ?>
  53. <form action="" method="POST">
  54. <b style="background: red; padding: 0.5em; color: white">Deactivated</b>
  55. <input type="submit" name="activate" value="activate" style="font: small" onclick="return confirm('Are you sure you want to activate this user?')"/>
  56. <?php UserTools::renderCSRFNonce(); ?>
  57. </form>
  58. <?php
  59. } else {
  60. ?>
  61. <form action="" method="POST">
  62. Active
  63. <input type="submit" name="deactivate" value="deactivate" style="font: small" onclick="return confirm('Are you sure you want to disable access for this user?')"/>
  64. <?php UserTools::renderCSRFNonce(); ?>
  65. </form>
  66. <?php
  67. }
  68. ?>
  69. <h2>Source of registration</h2>
  70. <p>Referer: <?php
  71. $referer = $user->getReferer();
  72. if (is_null($referer)) {
  73. ?><i>unknown</i><?php
  74. } else {
  75. ?><a href="<?php echo UserTools::escape($referer)?>"><?php echo UserTools::escape($referer)?></a><?php
  76. }
  77. ?>
  78. </p>
  79. <h2>Authentication Credentials</h2>
  80. <ul><?php
  81. foreach (UserConfig::$authentication_modules as $module)
  82. {
  83. $creds = $module->getUserCredentials($user);
  84. if (!is_null($creds)) {
  85. ?>
  86. <li><b><?php echo $module->getID() ?>: </b><?php echo $creds->getHTML() ?></li>
  87. <?php
  88. }
  89. }
  90. ?>
  91. </ul>
  92. <?php
  93. if (!$user->isTheSameAs($current_user)) {
  94. ?>
  95. <form name="imp" action="" method="POST"><input type="submit" value="impersonate" style="font: small"/><input type="hidden" name="impersonate" value="<?php echo $user->getID()?>"/>
  96. <?php UserTools::renderCSRFNonce(); ?>
  97. </form>
  98. <?php
  99. }
  100. if (UserConfig::$useAccounts) { ?>
  101. <h2>Accounts:</h2>
  102. <ul>
  103. <?php
  104. $accounts = $user->getAccounts();
  105. foreach ($accounts as $user_account) {
  106. ?><li>
  107. <?php echo UserTools::escape($user_account->getName()) ?> (<?php echo UserTools::escape($user_account->getPlan()->name) ?>)<?php
  108. if ($user_account->getUserRole() == Account::ROLE_ADMIN) {
  109. ?> (admin)<?php
  110. }
  111. ?></li><?php
  112. }
  113. ?>
  114. </ul>
  115. <?php
  116. }
  117. $features = Feature::getAll();
  118. if (count($features) > 0) {
  119. ?><h2>Features</h2>
  120. <form action="" method="POST">
  121. <?php foreach ($features as $id => $feature) {
  122. ?><div<?php if (!$feature->isEnabled()) {?> style="color: grey; text-decoration: line-through"<?php } ?>>
  123. <label>
  124. <input id="feature_<?php echo UserTools::escape($feature->getID()) ?>" type="checkbox" name="feature[<?php echo UserTools::escape($feature->getID()) ?>]"<?php echo $feature->isEnabledForUser($user) ? ' checked="true"' : '' ?><?php echo !$feature->isEnabled() ? ' disabled="disabled"' : '' ?>>
  125. <?php echo UserTools::escape($feature->getName()) ?></label>
  126. </div><?php
  127. } ?>
  128. <input type="submit" name="savefeatures" value="update features">
  129. <?php UserTools::renderCSRFNonce(); ?>
  130. </form>
  131. <?php
  132. }
  133. require_once(dirname(__FILE__).'/footer.php');