mainmenu.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <?php
  2. include_once __DIR__ . '/../../../App/util/HttpUtil.php';
  3. include_once __DIR__ . '/debug.php';
  4. use loyalsoft\RenderTime;
  5. /**
  6. * Description of MainMenu
  7. * 后台主界面
  8. * @author gwang (mail@wanggangzero.cn)
  9. */
  10. class MainMenu extends core {
  11. //put your code here
  12. public static function index() {
  13. if (self::_checkGrant()) {
  14. self::view('mainmenu.tpl');
  15. } else {
  16. self::login();
  17. }
  18. }
  19. public static function login() {
  20. $isAccessGranted = self::_checkGrant(); // 访问授权控制
  21. $name = Amfphp_BackOffice_AccessManager::SESSION_FIELD_ROLES; // "91bfa85e5204b5806d536a098caacd31";
  22. $pwd = Amfphp_BackOffice_AccessManager::AMFPHP_ADMIN_ROLE; // "a08dd655a04c8c4cd541c92c6d5d1350";
  23. $errorMessage = '';
  24. $redirectToHome = false;
  25. try {
  26. $paras = loyalsoft\query_paras();
  27. if ($isAccessGranted) {
  28. $redirectToHome = true;
  29. } else if (isset($paras['username'])) {
  30. //user is logging in.
  31. $username = $paras['username'];
  32. $password = $paras['password'];
  33. if (md5($username) == $name && md5($password) == $pwd) {
  34. if (session_id() == '') {
  35. session_start();
  36. }
  37. if (!isset($_SESSION[$name])) {
  38. $_SESSION[$name] = array();
  39. }
  40. $_SESSION[$name][$pwd] = true; # 设置授权
  41. $redirectToHome = true;
  42. } else {
  43. throw new Exception('Invalid username/password');
  44. }
  45. }
  46. if ($redirectToHome) {
  47. echo "<script> window.location = './index.php'; </script>";
  48. return;
  49. }
  50. } catch (Exception $e) {
  51. $errorMessage = $e->getMessage();
  52. }
  53. self::view('login.tpl', compact('redirectToHome', 'errorMessage'));
  54. }
  55. public static function debug() {
  56. if (self::_checkGrant()) {
  57. self::view(__FUNCTION__ . ".tpl");
  58. } else {
  59. self::login();
  60. }
  61. }
  62. public static function monitor() {
  63. if (self::_checkGrant()) {
  64. self::view(__FUNCTION__ . ".tpl");
  65. } else {
  66. self::login();
  67. }
  68. }
  69. public static function call() {
  70. if (self::_checkGrant()) {
  71. $params = loyalsoft\query_paras();
  72. $className = $params['className'];
  73. $mname = $params['method'];
  74. if ($className && $mname) {
  75. include_once __DIR__ . '/../../../App/Services/' . str_replace("loyalsoft\\", "", $className) . '.php'; # 直接向客户端输出返回值
  76. $rt = new RenderTime();
  77. ob_start();
  78. $result = call_user_func_array(array($className, $mname), array_values($_POST));
  79. $content = ob_end_flush();
  80. $rt->end();
  81. if (strlen($content) > 0) {
  82. echo("输出: " . $content);
  83. }
  84. echo "<hr/><hr/>";
  85. echo("返回值: " . json_encode($result));
  86. echo "<hr/><hr/>";
  87. echo("耗时:" . $rt->getRenderTime());
  88. }
  89. } else {
  90. self::login();
  91. }
  92. }
  93. /**
  94. * 查验授权
  95. * @return boolean
  96. */
  97. private static function _checkGrant() { // 访问授权控制
  98. $accessManager = new Amfphp_BackOffice_AccessManager();
  99. return $accessManager->isAccessGranted();
  100. }
  101. }