CommunityID/modules/default/controllers/SitesController.php

129 lines
3.6 KiB
PHP

<?php
/*
* @copyright Copyright (C) 2005-2010 Keyboard Monkeys Ltd. http://www.kb-m.com
* @license http://creativecommons.org/licenses/BSD/ BSD License
* @author Keyboard Monkey Ltd
* @since CommunityID 0.9
* @package CommunityID
* @packager Keyboard Monkeys
*/
class SitesController extends CommunityID_Controller_Action
{
public function preDispatch()
{
if ($this->user->role == Users_Model_User::ROLE_ADMIN) {
throw new Monkeys_AccessDeniedException();
}
}
public function indexAction()
{
$this->_helper->actionStack('index', 'login', 'users');
}
public function listAction()
{
$this->_helper->viewRenderer->setNeverRender(true);
$fields = new Model_Fields();
$sites = new Model_Sites();
$sitesRows = $sites->get(
$this->user,
$this->_getParam('startIndex'),
$this->_getParam('results')
);
$jsonObj = new StdClass();
$jsonObj->recordsReturned = count($sitesRows);
$jsonObj->totalRecords = $sites->getNumSites($this->user);
$jsonObj->startIndex = $this->_getParam('startIndex');
$jsonObj->sort = null;
$jsonObj->dir = 'asc';
$jsonObj->records = array();
foreach ($sitesRows as $site) {
$jsonObjSite = new StdClass();
$jsonObjSite->id = $site->id;
$jsonObjSite->site = $site->site;
$trusted = unserialize($site->trusted);
$jsonObjSite->trusted = (is_bool($trusted) && $trusted) || is_array($trusted);
if (is_array($trusted)
&& isset($trusted['Zend_OpenId_Extension_Sreg'])
&& count($trusted['Zend_OpenId_Extension_Sreg']) > 0)
{
$translatedTrusted = array();
foreach ($trusted['Zend_OpenId_Extension_Sreg'] as $identifier => $value) {
$translatedTrusted[$this->view->translate($fields->getFieldName($identifier))] = $value;
}
$jsonObjSite->infoExchanged = $translatedTrusted;
} else {
$jsonObjSite->infoExchanged = false;
}
$jsonObj->records[] = $jsonObjSite;
}
echo Zend_Json::encode($jsonObj);
}
public function denyAction()
{
$this->_helper->viewRenderer->setNeverRender(true);
$sites = new Model_Sites();
$site = $sites->getRowInstance($this->_getParam('id'));
if ($site->user_id != $this->user->id) {
throw new Monkeys_AccessDeniedException();
}
$site->trusted = serialize(false);
$site->save();
$json = new StdClass();
$json->code = 200;
echo Zend_Json::encode($json);
}
public function allowAction()
{
$this->_helper->viewRenderer->setNeverRender(true);
$sites = new Model_Sites();
$site = $sites->getRowInstance($this->_getParam('id'));
if ($site->user_id != $this->user->id) {
throw new Monkeys_AccessDeniedException();
}
$site->trusted = serialize(true);
$site->save();
$json = new StdClass();
$json->code = 200;
echo Zend_Json::encode($json);
}
public function deleteAction()
{
$this->_helper->viewRenderer->setNeverRender(true);
$sites = new Model_Sites();
$site = $sites->getRowInstance($this->_getParam('id'));
if ($site->user_id != $this->user->id) {
throw new Monkeys_AccessDeniedException();
}
$site->delete();
$json = new StdClass();
$json->code = 200;
echo Zend_Json::encode($json);
}
}