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