- $ok = $this->sharedBoilerplate();
- if ($ok) {
- // and now do something useful!
- $this->profile = $this->validateProfile($this->trimmed('profile'));
- return true;
- } else {
- return $ok;
- }
- }
-
- function validateProfile($id)
- {
- $id = intval($id);
- $profile = Profile::staticGet('id', $id);
- if ($profile && $profile->id != $this->user->id) {
- return $profile;
- }
- // TRANS: Error message returned to user when setting up feed mirroring, but we were unable to resolve the given URL to a working feed.
- $this->clientError(_m("Invalid profile for mirroring."));
- }
-
- /**
- * @fixme none of this belongs in end classes
- * this stuff belongs in shared code!
- */
- function sharedBoilerplate()
- {
- // Only allow POST requests
-
- if ($_SERVER['REQUEST_METHOD'] != 'POST') {
- $this->clientError(_('This action only accepts POST requests.'));
- return false;
- }
-
- // CSRF protection
-
- $token = $this->trimmed('token');
-
- if (!$token || $token != common_session_token()) {
- $this->clientError(_('There was a problem with your session token.'.
- ' Try again, please.'));
- return false;
- }
-
- // Only for logged-in users
-
- $this->user = common_current_user();
-
- if (empty($this->user)) {
- $this->clientError(_('Not logged in.'));
- return false;
- }