forked from GNUsocial/gnu-social
		
	Better detial in connected OAuth applications list
This commit is contained in:
		| @@ -48,6 +48,16 @@ require_once INSTALLDIR . '/lib/applicationlist.php'; | ||||
|  | ||||
| class OauthconnectionssettingsAction extends ConnectSettingsAction | ||||
| { | ||||
|  | ||||
|     var $page = null; | ||||
|  | ||||
|     function prepare($args) | ||||
|     { | ||||
|         parent::prepare($args); | ||||
|         $this->page = ($this->arg('page')) ? ($this->arg('page') + 0) : 1; | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Title of the page | ||||
|      * | ||||
| @@ -59,6 +69,11 @@ class OauthconnectionssettingsAction extends ConnectSettingsAction | ||||
|         return _('Connected Applications'); | ||||
|     } | ||||
|  | ||||
|     function isReadOnly($args) | ||||
|     { | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Instructions for use | ||||
|      * | ||||
| @@ -86,13 +101,16 @@ class OauthconnectionssettingsAction extends ConnectSettingsAction | ||||
|  | ||||
|         $application = $profile->getApplications($offset, $limit); | ||||
|  | ||||
|         if ($application) { | ||||
|             $al = new ApplicationList($application, $this->user, $this); | ||||
|             $cnt = $al->show(); | ||||
|             if (0 == $cnt) { | ||||
|                 $this->showEmptyListMessage(); | ||||
|             } | ||||
|         } | ||||
| 	$cnt == 0; | ||||
|  | ||||
| 	if (!empty($application)) { | ||||
| 	    $al = new ApplicationList($application, $user, $this, true); | ||||
| 	    $cnt = $al->show(); | ||||
| 	} | ||||
|  | ||||
| 	if ($cnt == 0) { | ||||
| 	    $this->showEmptyListMessage(); | ||||
| 	} | ||||
|  | ||||
|         $this->pagination($this->page > 1, $cnt > APPS_PER_PAGE, | ||||
|                           $this->page, 'connectionssettings', | ||||
|   | ||||
| @@ -355,10 +355,11 @@ class Profile extends Memcached_DataObject | ||||
|     function getApplications($offset = 0, $limit = null) | ||||
|     { | ||||
|         $qry = | ||||
|           'SELECT oauth_application_user.* ' . | ||||
|           'FROM oauth_application_user ' . | ||||
|           'WHERE profile_id = %d ' . | ||||
|           'ORDER BY created DESC '; | ||||
|           'SELECT a.* ' . | ||||
|           'FROM oauth_application_user u, oauth_application a ' . | ||||
|           'WHERE u.profile_id = %d ' . | ||||
| 	  'AND a.id = u.application_id ' . | ||||
|           'ORDER BY u.created DESC '; | ||||
|  | ||||
|         if ($offset > 0) { | ||||
|             if (common_config('db','type') == 'pgsql') { | ||||
|   | ||||
| @@ -57,13 +57,14 @@ class ApplicationList extends Widget | ||||
|     /** Action object using us. */ | ||||
|     var $action = null; | ||||
|  | ||||
|     function __construct($application, $owner=null, $action=null) | ||||
|     function __construct($application, $owner=null, $action=null, $connections = false) | ||||
|     { | ||||
|         parent::__construct($action); | ||||
|  | ||||
|         $this->application = $application; | ||||
|         $this->owner       = $owner; | ||||
|         $this->action      = $action; | ||||
| 	$this->connections = $connections; | ||||
|     } | ||||
|  | ||||
|     function show() | ||||
| @@ -97,36 +98,65 @@ class ApplicationList extends Widget | ||||
| 	    $this->out->element('img', array('src' => $this->application->icon)); | ||||
| 	} | ||||
|  | ||||
|         $this->out->elementStart('a', | ||||
|             array('href' => common_local_url( | ||||
|                     'showapplication', | ||||
|                     array( | ||||
|                         'nickname' => $user->nickname, | ||||
|                         'id' => $this->application->id | ||||
|                         ) | ||||
|                     ), | ||||
|                 'class' => 'url') | ||||
|             ); | ||||
| 	if (!$this->connections) { | ||||
|  | ||||
| 	    $this->out->elementStart('a', | ||||
| 				     array('href' => | ||||
| 					   common_local_url('showapplication', | ||||
| 							    array('nickname' => $user->nickname, | ||||
| 								  'id' => $this->application->id)), | ||||
| 					   'class' => 'url') | ||||
| 				     ); | ||||
|  | ||||
| 	    $this->out->raw($this->application->name); | ||||
| 	    $this->out->elementEnd('a'); | ||||
|  | ||||
| 	    $this->out->raw(' by '); | ||||
|  | ||||
| 	} else { | ||||
| 	    $this->out->elementStart('a', | ||||
|             array( | ||||
|                 'href' => $this->application->homepage, | ||||
|                 'class' => 'url' | ||||
|                 ) | ||||
|             ); | ||||
| 	    $this->out->raw($this->application->organization); | ||||
| 	    $this->out->elementEnd('a'); | ||||
| 				     array('href' =>  $this->application->source_url, | ||||
| 					   'class' => 'url')); | ||||
|  | ||||
| 	    $this->out->elementStart('p', 'note'); | ||||
| 	    $this->out->raw($this->application->name); | ||||
| 	    $this->out->elementEnd('a'); | ||||
| 	} | ||||
|  | ||||
| 	$this->out->raw(' by '); | ||||
|  | ||||
| 	$this->out->elementStart('a', | ||||
|             array( | ||||
| 		  'href' => $this->application->homepage, | ||||
| 		  'class' => 'url' | ||||
|                 ) | ||||
| 				 ); | ||||
| 	$this->out->raw($this->application->organization); | ||||
| 	$this->out->elementEnd('a'); | ||||
|  | ||||
| 	$this->out->elementStart('p', 'note'); | ||||
|         $this->out->raw($this->application->description); | ||||
|         $this->out->elementEnd('p'); | ||||
|  | ||||
| 	$this->out->elementEnd('li'); | ||||
|  | ||||
| 	if ($this->connections) { | ||||
|  | ||||
| 	    $appUser = Oauth_application_user::getByKeys($this->owner, $this->application); | ||||
|  | ||||
| 	    if (empty($appUser)) { | ||||
| 		common_debug("empty appUser!"); | ||||
| 	    } | ||||
|  | ||||
| 	    $this->out->elementStart('li'); | ||||
|  | ||||
| 	    $access = ($this->application->access_type & Oauth_application::$writeAccess) | ||||
| 	      ? 'read-write' : 'read-only'; | ||||
|  | ||||
| 	    $txt = 'Approved ' . common_exact_date($appUser->modified) . | ||||
| 	      " $access for access."; | ||||
|  | ||||
| 	    $this->out->raw($txt); | ||||
| 	    $this->out->elementEnd('li'); | ||||
|  | ||||
| 	    // XXX: Add revoke access button | ||||
| 	} | ||||
|     } | ||||
|  | ||||
|     /* Override this in subclasses. */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user