| 
									
										
										
										
											2008-06-20 03:17:00 -04:00
										 |  |  | <?php | 
					
						
							| 
									
										
										
										
											2009-01-20 21:31:56 +00:00
										 |  |  | /** | 
					
						
							|  |  |  |  * User by ID action class. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * PHP version 5 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @category Action | 
					
						
							| 
									
										
										
										
											2009-08-25 18:12:20 -04:00
										 |  |  |  * @package  StatusNet | 
					
						
							| 
									
										
										
										
											2009-08-25 18:19:04 -04:00
										 |  |  |  * @author   Evan Prodromou <evan@status.net> | 
					
						
							|  |  |  |  * @author   Robin Millette <millette@status.net> | 
					
						
							| 
									
										
										
										
											2009-01-20 21:31:56 +00:00
										 |  |  |  * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 | 
					
						
							| 
									
										
										
										
											2009-08-25 18:16:46 -04:00
										 |  |  |  * @link     http://status.net/ | 
					
						
							| 
									
										
										
										
											2009-01-21 00:07:15 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-08-25 18:14:12 -04:00
										 |  |  |  * StatusNet - the distributed open-source microblogging tool | 
					
						
							| 
									
										
										
										
											2009-08-25 18:12:20 -04:00
										 |  |  |  * Copyright (C) 2008, 2009, StatusNet, Inc. | 
					
						
							| 
									
										
										
										
											2008-06-20 03:17:00 -04:00
										 |  |  |  * | 
					
						
							|  |  |  |  * This program is free software: you can redistribute it and/or modify | 
					
						
							|  |  |  |  * it under the terms of the GNU Affero General Public License as published by | 
					
						
							|  |  |  |  * the Free Software Foundation, either version 3 of the License, or | 
					
						
							|  |  |  |  * (at your option) any later version. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  |  * GNU Affero General Public License for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * You should have received a copy of the GNU Affero General Public License | 
					
						
							|  |  |  |  * along with this program.  If not, see <http://www.gnu.org/licenses/>. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-05 21:24:41 +02:00
										 |  |  | if (!defined('GNUSOCIAL')) { exit(1); } | 
					
						
							| 
									
										
										
										
											2008-06-20 03:17:00 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-20 21:31:56 +00:00
										 |  |  | /** | 
					
						
							|  |  |  |  * User by ID action class. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @category Action | 
					
						
							| 
									
										
										
										
											2009-08-25 18:12:20 -04:00
										 |  |  |  * @package  StatusNet | 
					
						
							| 
									
										
										
										
											2009-08-25 18:19:04 -04:00
										 |  |  |  * @author   Evan Prodromou <evan@status.net> | 
					
						
							|  |  |  |  * @author   Robin Millette <millette@status.net> | 
					
						
							| 
									
										
										
										
											2009-01-20 21:31:56 +00:00
										 |  |  |  * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 | 
					
						
							| 
									
										
										
										
											2009-08-25 18:16:46 -04:00
										 |  |  |  * @link     http://status.net/ | 
					
						
							| 
									
										
										
										
											2009-01-20 21:31:56 +00:00
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2015-06-05 21:24:41 +02:00
										 |  |  | class UserbyidAction extends ShowstreamAction | 
					
						
							| 
									
										
										
										
											2008-12-23 14:49:23 -05:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2015-06-05 21:24:41 +02:00
										 |  |  |     protected function doPreparation() | 
					
						
							| 
									
										
										
										
											2009-12-13 18:55:17 +01:00
										 |  |  |     { | 
					
						
							| 
									
										
										
										
											2015-06-05 21:24:41 +02:00
										 |  |  |         // accessing by ID just requires an ID, not a nickname
 | 
					
						
							|  |  |  |         $this->target = Profile::getByID($this->trimmed('id')); | 
					
						
							| 
									
										
										
										
											2009-01-20 21:31:56 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-05 21:24:41 +02:00
										 |  |  |         // For local users when accessed by id number, redirect with
 | 
					
						
							|  |  |  |         // the nickname as argument instead of id.
 | 
					
						
							|  |  |  |         if ($this->target->isLocal()) { | 
					
						
							|  |  |  |             // Support redirecting to FOAF rdf/xml if the agent prefers it...
 | 
					
						
							|  |  |  |             // Internet Explorer doesn't specify "text/html" and does list "*/*"
 | 
					
						
							|  |  |  |             // at least through version 8. We need to list text/html up front to
 | 
					
						
							|  |  |  |             // ensure that only user-agents who specifically ask for RDF get it.
 | 
					
						
							|  |  |  |             $page_prefs = 'text/html,application/xhtml+xml,application/rdf+xml,application/xml;q=0.3,text/xml;q=0.2'; | 
					
						
							|  |  |  |             $httpaccept = isset($_SERVER['HTTP_ACCEPT']) ? $_SERVER['HTTP_ACCEPT'] : null; | 
					
						
							|  |  |  |             $type       = common_negotiate_type(common_accept_to_prefs($httpaccept), | 
					
						
							|  |  |  |                                                 common_accept_to_prefs($page_prefs)); | 
					
						
							|  |  |  |             $page       = $type === 'application/rdf+xml' ? 'foaf' : 'showstream'; | 
					
						
							|  |  |  |             $url        = common_local_url($page, array('nickname' => $this->target->getNickname())); | 
					
						
							|  |  |  |             common_redirect($url, 303); | 
					
						
							| 
									
										
										
										
											2008-12-23 14:19:07 -05:00
										 |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2008-06-20 03:17:00 -04:00
										 |  |  | } |