/interfaces/admin/components/pages/controllers/account.php

https://gitlab.com/x33n/platform · PHP · 110 lines · 101 code · 6 blank · 3 comment · 23 complexity · e53c709cd1fd1a6257a15a2561741604 MD5 · raw file

  1. <?php
  2. if (isset($_POST['doaccountchange'])) {
  3. $valid_user_response = $cash_admin->requestAndStore(
  4. array(
  5. 'cash_request_type' => 'system',
  6. 'cash_action' => 'validatelogin',
  7. 'address' => $_POST['email_address'],
  8. 'password' => $_POST['password'],
  9. 'require_admin' => true,
  10. 'keep_session' => true
  11. )
  12. );
  13. if (!$valid_user_response['payload']) {
  14. AdminHelper::formFailure('Error. There was a problem with your password. Please try again.');
  15. } else {
  16. $changes = array(
  17. 'cash_request_type' => 'system',
  18. 'cash_action' => 'setlogincredentials',
  19. 'user_id' => $cash_admin->effective_user_id
  20. );
  21. if (isset($_POST['new_email_address'])) {
  22. if ($_POST['new_email_address']) {
  23. $changes['address'] = $_POST['new_email_address'];
  24. }
  25. }
  26. if (isset($_POST['new_username'])) {
  27. if ($_POST['new_username']) {
  28. // strip all non-alpha/numeric and push it all to lowercase for the sake of uniqueness
  29. $changes['username'] = strtolower(preg_replace("/[^a-z0-9]+/i", '',$_POST['new_username']));
  30. }
  31. }
  32. if (isset($_POST['new_displayname'])) {
  33. if ($_POST['new_displayname']) {
  34. $changes['display_name'] = $_POST['new_displayname'];
  35. }
  36. }
  37. if (isset($_POST['new_url'])) {
  38. if ($_POST['new_url']) {
  39. $changes['url'] = $_POST['new_url'];
  40. }
  41. }
  42. if (isset($_POST['new_password'])) {
  43. if ($_POST['new_password']) {
  44. if (!defined('MINIMUM_PASSWORD_LENGTH')) {
  45. define('MINIMUM_PASSWORD_LENGTH',10);
  46. }
  47. if (strlen($_POST['new_password']) < MINIMUM_PASSWORD_LENGTH) {
  48. AdminHelper::formFailure('Error. Your password should be at least ' . MINIMUM_PASSWORD_LENGTH . ' characters long. Please try again.');
  49. }
  50. $changes['password'] = $_POST['new_password'];
  51. }
  52. }
  53. $change_response = $cash_admin->requestAndStore($changes);
  54. if ($change_response['payload'] !== false) {
  55. if (isset($changes['address'])) {
  56. $admin_primary_cash_request->sessionSet('cash_effective_user_email',$changes['address']);
  57. }
  58. AdminHelper::formSuccess('Success. All changed.');
  59. } else {
  60. AdminHelper::formFailure('Error. We had a problem resetting your login. Please try again. Email addresses and usernames have to be unique.');
  61. }
  62. }
  63. }
  64. $effective_user = $cash_admin->effective_user_id;
  65. $user_request = $cash_admin->requestAndStore(
  66. array(
  67. 'cash_request_type' => 'people',
  68. 'cash_action' => 'getuser',
  69. 'user_id' => $effective_user
  70. )
  71. );
  72. if (is_array($user_request['payload'])) {
  73. $cash_admin->page_data['email_address'] = $user_request['payload']['email_address'];
  74. $cash_admin->page_data['username'] = $user_request['payload']['username'];
  75. $cash_admin->page_data['display_name'] = $user_request['payload']['display_name'];
  76. $cash_admin->page_data['url'] = $user_request['payload']['url'];
  77. $cash_admin->page_data['api_key'] = $user_request['payload']['api_key'];
  78. $cash_admin->page_data['api_url'] = CASH_API_URL;
  79. if (isset($_REQUEST['reveal'])) {
  80. $cash_admin->page_data['api_secret'] = $user_request['payload']['api_secret'];
  81. }
  82. }
  83. // get username and any user data
  84. $user_response = $cash_admin->requestAndStore(
  85. array(
  86. 'cash_request_type' => 'people',
  87. 'cash_action' => 'getuser',
  88. 'user_id' => $cash_admin->effective_user_id
  89. )
  90. );
  91. if (is_array($user_response['payload'])) {
  92. $current_username = $user_response['payload']['username'];
  93. $current_userdata = $user_response['payload']['data'];
  94. }
  95. // get page url
  96. if (SUBDOMAIN_USERNAMES) {
  97. $cash_admin->page_data['user_page_uri'] = str_replace('https','http',rtrim(str_replace('admin', '', CASH_ADMIN_URL),'/'));
  98. $cash_admin->page_data['user_page_uri'] = str_replace('://','://' . $current_username . '.',$cash_admin->page_data['user_page_uri']);
  99. } else {
  100. $cash_admin->page_data['user_page_uri'] = str_replace('https','http',rtrim(str_replace('admin', $current_username, CASH_ADMIN_URL),'/'));
  101. }
  102. $cash_admin->page_data['user_page_display_uri'] = str_replace('http://','',$cash_admin->page_data['user_page_uri']);
  103. $cash_admin->setPageContentTemplate('account');
  104. ?>