mirror of
https://github.com/wbbaddons/Tims-Chat.git
synced 2025-01-09 00:20:08 +00:00
Adding ACL-Administration
plus correcting comments and fixing unload handler
This commit is contained in:
parent
38977abbd8
commit
dbd4e7b849
@ -1,5 +1,24 @@
|
||||
{include file='header'}
|
||||
|
||||
<!-- ToDo: DEBUG ONLY -->
|
||||
<link rel="stylesheet" type="text/css" href="{@$__wcf->getPath('wcf')}style/acl.css" />
|
||||
<!-- /DEBUG ONLY -->
|
||||
|
||||
<script type="text/javascript" src="{@$__wcf->getPath('wcf')}js/WCF.ACL.js"></script>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
$(function() {
|
||||
WCF.Icon.addObject({
|
||||
'wcf.icon.delete': '{@$__wcf->getPath('wcf')}icon/delete1.svg',
|
||||
'wcf.icon.user': '{@$__wcf->getPath('wcf')}icon/user1.svg',
|
||||
'wcf.icon.users': '{@$__wcf->getPath('wcf')}icon/users1.svg'
|
||||
});
|
||||
|
||||
new WCF.ACL.List($('#groupPermissions'), {@$objectTypeID}{if $groupID|isset}, {@$groupID}{/if});
|
||||
});
|
||||
//]]>
|
||||
</script>
|
||||
|
||||
<header class="wcf-mainHeading">
|
||||
<img src="{@$__wcf->getPath('wcf')}icon/{$action}1.svg" alt="" />
|
||||
<hgroup>
|
||||
@ -63,6 +82,11 @@
|
||||
</dl>
|
||||
|
||||
{include file='multipleLanguageInputJavascript' elementIdentifier='topic'}
|
||||
|
||||
<dl id="groupPermissions">
|
||||
<dt>{lang}wcf.acp.acl.permissions{/lang}</dt>
|
||||
<dd></dd>
|
||||
</dl>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
|
@ -78,8 +78,9 @@ consoleMock ?=
|
||||
, @
|
||||
|
||||
# Unload the chat
|
||||
$(window).unload $.proxy () ->
|
||||
window.onbeforeunload = $.proxy () ->
|
||||
@unload()
|
||||
return undefined
|
||||
, @
|
||||
|
||||
# Insert a smiley
|
||||
|
@ -8,7 +8,7 @@
|
||||
/**
|
||||
* Shows the chatroom add form.
|
||||
*
|
||||
* @author Tim Düsterhus
|
||||
* @author Tim Düsterhus
|
||||
* @copyright 2010-2012 Tim Düsterhus
|
||||
* @license Creative Commons Attribution-NonCommercial-ShareAlike <http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode>
|
||||
* @package timwolla.wcf.chat
|
||||
@ -16,12 +16,12 @@
|
||||
*/
|
||||
class ChatRoomAddForm extends ACPForm {
|
||||
/**
|
||||
* @see \wcf\acp\form\ACPForm::$activeMenuItem
|
||||
* @see \wcf\acp\form\ACPForm::$activeMenuItem
|
||||
*/
|
||||
public $activeMenuItem = 'wcf.acp.menu.link.chat.room.add';
|
||||
|
||||
/**
|
||||
* @see \wcf\page\AbstractPage::$neededPermissions
|
||||
* @see \wcf\page\AbstractPage::$neededPermissions
|
||||
*/
|
||||
public $neededPermissions = array('admin.content.chat.canAddRoom');
|
||||
|
||||
@ -40,7 +40,16 @@ class ChatRoomAddForm extends ACPForm {
|
||||
public $topic = '';
|
||||
|
||||
/**
|
||||
* @see wcf\page\IPage::readParameters()
|
||||
* @see \wcf\page\AbstractPage::__construct()
|
||||
*/
|
||||
public function __construct() {
|
||||
$this->objectTypeID = \wcf\system\acl\ACLHandler::getInstance()->getObjectTypeID('timwolla.wcf.chat.room');
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \wcf\page\IPage::readParameters()
|
||||
*/
|
||||
public function readParameters() {
|
||||
parent::readParameters();
|
||||
@ -50,7 +59,7 @@ public function readParameters() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @see wcf\form\IForm::readFormParameters()
|
||||
* @see \wcf\form\IForm::readFormParameters()
|
||||
*/
|
||||
public function readFormParameters() {
|
||||
parent::readFormParameters();
|
||||
@ -62,7 +71,7 @@ public function readFormParameters() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @see wcf\form\IForm::validate()
|
||||
* @see \wcf\form\IForm::validate()
|
||||
*/
|
||||
public function validate() {
|
||||
parent::validate();
|
||||
@ -74,7 +83,7 @@ public function validate() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @see wcf\form\IForm::save()
|
||||
* @see \wcf\form\IForm::save()
|
||||
*/
|
||||
public function save() {
|
||||
parent::save();
|
||||
@ -107,6 +116,9 @@ public function save() {
|
||||
));
|
||||
}
|
||||
|
||||
\wcf\system\acl\ACLHandler::getInstance()->save($roomID, $this->objectTypeID);
|
||||
\wcf\system\chat\permissions\ChatPermissionHandler::clearCache();
|
||||
|
||||
$this->saved();
|
||||
|
||||
// reset values
|
||||
@ -120,7 +132,7 @@ public function save() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @see wcf\page\IPage::assignVariables()
|
||||
* @see \wcf\page\IPage::assignVariables()
|
||||
*/
|
||||
public function assignVariables() {
|
||||
parent::assignVariables();
|
||||
@ -130,7 +142,8 @@ public function assignVariables() {
|
||||
WCF::getTPL()->assign(array(
|
||||
'action' => 'add',
|
||||
'title' => $this->title,
|
||||
'topic' => $this->topic
|
||||
'topic' => $this->topic,
|
||||
'objectTypeID' => $this->objectTypeID
|
||||
));
|
||||
}
|
||||
}
|
||||
|
@ -15,17 +15,17 @@
|
||||
*/
|
||||
class ChatRoomEditForm extends ChatRoomAddForm {
|
||||
/**
|
||||
* @see \wcf\page\AbstractPage::$templateName
|
||||
* @see \wcf\page\AbstractPage::$templateName
|
||||
*/
|
||||
public $templateName = 'chatRoomAdd';
|
||||
|
||||
/**
|
||||
* @see \wcf\acp\form\ACPForm::$activeMenuItem
|
||||
* @see \wcf\acp\form\ACPForm::$activeMenuItem
|
||||
*/
|
||||
public $activeMenuItem = 'wcf.acp.menu.link.chat.room.list';
|
||||
|
||||
/**
|
||||
* @see \wcf\page\AbstractPage::$neededPermissions
|
||||
* @see \wcf\page\AbstractPage::$neededPermissions
|
||||
*/
|
||||
public $neededPermissions = array('admin.content.chat.canEditRoom');
|
||||
|
||||
@ -44,7 +44,7 @@ class ChatRoomEditForm extends ChatRoomAddForm {
|
||||
public $roomObj = null;
|
||||
|
||||
/**
|
||||
* @see wcf\page\IPage::readParameters()
|
||||
* @see \wcf\page\IPage::readParameters()
|
||||
*/
|
||||
public function readParameters() {
|
||||
parent::readParameters();
|
||||
@ -57,7 +57,7 @@ public function readParameters() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @see wcf\form\IForm::save()
|
||||
* @see \wcf\form\IForm::save()
|
||||
*/
|
||||
public function save() {
|
||||
ACPForm::save();
|
||||
@ -80,6 +80,8 @@ public function save() {
|
||||
I18nHandler::getInstance()->save('topic', $this->topic, 'wcf.chat.room', PackageDependencyHandler::getPackageID('timwolla.wcf.chat'));
|
||||
}
|
||||
|
||||
\wcf\system\acl\ACLHandler::getInstance()->save($this->roomID, $this->objectTypeID);
|
||||
\wcf\system\chat\permission\ChatPermissionHandler::clearCache();
|
||||
|
||||
// update room
|
||||
$this->objectAction = new \wcf\data\chat\room\ChatRoomAction(array($this->roomID), 'update', array('data' => array(
|
||||
@ -97,7 +99,7 @@ public function save() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @see wcf\page\IPage::readData()
|
||||
* @see \wcf\page\IPage::readData()
|
||||
*/
|
||||
public function readData() {
|
||||
parent::readData();
|
||||
@ -112,7 +114,7 @@ public function readData() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @see wcf\page\IPage::assignVariables()
|
||||
* @see \wcf\page\IPage::assignVariables()
|
||||
*/
|
||||
public function assignVariables() {
|
||||
parent::assignVariables();
|
||||
|
@ -12,7 +12,7 @@
|
||||
*/
|
||||
class ChatRoomListPage extends \wcf\page\MultipleLinkPage {
|
||||
/**
|
||||
* @see wcf\page\AbstractPage::$neededPermissions
|
||||
* @see \wcf\page\AbstractPage::$neededPermissions
|
||||
*/
|
||||
public $neededPermissions = array(
|
||||
'admin.content.chat.canEditRoom',
|
||||
@ -20,22 +20,22 @@ class ChatRoomListPage extends \wcf\page\MultipleLinkPage {
|
||||
);
|
||||
|
||||
/**
|
||||
* @see wcf\page\MultipleLinkPage::$objectListClassName
|
||||
* @see \wcf\page\MultipleLinkPage::$objectListClassName
|
||||
*/
|
||||
public $objectListClassName = '\wcf\data\chat\room\ChatRoomList';
|
||||
|
||||
/**
|
||||
* @see wcf\page\MultipleLinkPage::$sortField
|
||||
* @see \wcf\page\MultipleLinkPage::$sortField
|
||||
*/
|
||||
public $sortField = 'position';
|
||||
|
||||
/**
|
||||
* @see wcf\page\MultipleLinkPage::$sortOrder
|
||||
* @see \wcf\page\MultipleLinkPage::$sortOrder
|
||||
*/
|
||||
public $sortOrder = 'ASC';
|
||||
|
||||
/**
|
||||
* @see wcf\page\IPage::show()
|
||||
* @see \wcf\page\IPage::show()
|
||||
*/
|
||||
public function show() {
|
||||
// set active menu item.
|
||||
|
@ -13,13 +13,16 @@
|
||||
* @subpackage action
|
||||
*/
|
||||
class ChatLeaveAction extends AbstractAction {
|
||||
/**
|
||||
* @see \wcf\action\AbstractAction::$neededModules
|
||||
*/
|
||||
public $neededModules = array('CHAT_ACTIVE');
|
||||
//public $neededPermissions = array('user.chat.canEnter');
|
||||
public $room = null;
|
||||
public $userData = array();
|
||||
|
||||
/**
|
||||
* @see wcf\action\IAction::execute()
|
||||
* @see \wcf\action\IAction::execute()
|
||||
*/
|
||||
public function execute() {
|
||||
parent::execute();
|
||||
|
@ -13,12 +13,12 @@
|
||||
*/
|
||||
class ChatMessage extends \wcf\data\DatabaseObject {
|
||||
/**
|
||||
* @see wcf\data\DatabaseObject::$databaseTableName
|
||||
* @see \wcf\data\DatabaseObject::$databaseTableName
|
||||
*/
|
||||
protected static $databaseTableName = 'chat_message';
|
||||
|
||||
/**
|
||||
* @see wcf\data\DatabaseObject::$databaseTableIndexName
|
||||
* @see \wcf\data\DatabaseObject::$databaseTableIndexName
|
||||
*/
|
||||
protected static $databaseTableIndexName = 'messageID';
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
*/
|
||||
class ChatMessageAction extends \wcf\data\AbstractDatabaseObjectAction {
|
||||
/**
|
||||
* @see wcf\data\AbstractDatabaseObjectAction::$className
|
||||
* @see \wcf\data\AbstractDatabaseObjectAction::$className
|
||||
*/
|
||||
protected $className = '\wcf\data\chat\message\ChatMessageEditor';
|
||||
}
|
||||
|
@ -12,7 +12,7 @@
|
||||
*/
|
||||
class ChatMessageEditor extends \wcf\data\DatabaseObjectEditor {
|
||||
/**
|
||||
* @see wcf\data\DatabaseObjectDecorator::$baseClass
|
||||
* @see \wcf\data\DatabaseObjectDecorator::$baseClass
|
||||
*/
|
||||
protected static $baseClass = '\wcf\data\chat\message\ChatMessage';
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
*/
|
||||
class ChatMessageList extends \wcf\data\DatabaseObjectList {
|
||||
/**
|
||||
* @see wcf\data\DatabaseObjectList::$className
|
||||
* @see \wcf\data\DatabaseObjectList::$className
|
||||
*/
|
||||
public $className = 'wcf\data\chat\message\ChatMessage';
|
||||
|
||||
|
@ -13,12 +13,12 @@
|
||||
*/
|
||||
class ChatRoom extends \wcf\data\DatabaseObject implements \wcf\system\request\IRouteController {
|
||||
/**
|
||||
* @see wcf\data\DatabaseObject::$databaseTableName
|
||||
* @see \wcf\data\DatabaseObject::$databaseTableName
|
||||
*/
|
||||
protected static $databaseTableName = 'chat_room';
|
||||
|
||||
/**
|
||||
* @see wcf\data\DatabaseObject::$databaseTableIndexName
|
||||
* @see \wcf\data\DatabaseObject::$databaseTableIndexName
|
||||
*/
|
||||
protected static $databaseTableIndexName = 'roomID';
|
||||
|
||||
@ -76,6 +76,6 @@ public function getID() {
|
||||
* @return boolean
|
||||
*/
|
||||
public function canEnter() {
|
||||
return \wcf\system\chat\permissions\ChatPermissionHandler::getInstance()->getPermission($this, 'canEnter');
|
||||
return \wcf\system\chat\permission\ChatPermissionHandler::getInstance()->getPermission($this, 'canEnter');
|
||||
}
|
||||
}
|
||||
|
@ -12,17 +12,17 @@
|
||||
*/
|
||||
class ChatRoomAction extends \wcf\data\AbstractDatabaseObjectAction {
|
||||
/**
|
||||
* @see wcf\data\AbstractDatabaseObjectAction::$className
|
||||
* @see \wcf\data\AbstractDatabaseObjectAction::$className
|
||||
*/
|
||||
protected $className = '\wcf\data\chat\room\ChatRoomEditor';
|
||||
|
||||
/**
|
||||
* @see wcf\data\AbstractDatabaseObjectAction::$permissionsDelete
|
||||
* @see \wcf\data\AbstractDatabaseObjectAction::$permissionsDelete
|
||||
*/
|
||||
protected $permissionsDelete = array('admin.content.chat.canDeleteRoom');
|
||||
|
||||
/**
|
||||
* @see wcf\data\AbstractDatabaseObjectAction::$permissionsUpdate
|
||||
* @see \wcf\data\AbstractDatabaseObjectAction::$permissionsUpdate
|
||||
*/
|
||||
protected $permissionsUpdate = array('admin.content.chat.canEditRoom');
|
||||
}
|
||||
|
@ -13,7 +13,7 @@
|
||||
*/
|
||||
class ChatRoomEditor extends \wcf\data\DatabaseObjectEditor implements \wcf\data\IEditableCachedObject {
|
||||
/**
|
||||
* @see wcf\data\DatabaseObjectDecorator::$baseClass
|
||||
* @see \wcf\data\DatabaseObjectDecorator::$baseClass
|
||||
*/
|
||||
protected static $baseClass = '\wcf\data\chat\room\ChatRoom';
|
||||
|
||||
@ -26,7 +26,7 @@ public static function resetCache() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \wcf\data\DatabaseObjectEditor::deleteAll()
|
||||
* @see \wcf\data\DatabaseObjectEditor::deleteAll()
|
||||
*/
|
||||
public static function deleteAll(array $objectIDs = array()) {
|
||||
parent::deleteAll($objectIDs);
|
||||
|
@ -12,7 +12,7 @@
|
||||
*/
|
||||
class ChatRoomList extends \wcf\data\DatabaseObjectList {
|
||||
/**
|
||||
* @see wcf\data\DatabaseObjectList::$className
|
||||
* @see \wcf\data\DatabaseObjectList::$className
|
||||
*/
|
||||
public $className = 'wcf\data\chat\room\ChatRoom';
|
||||
}
|
||||
|
@ -8,7 +8,7 @@
|
||||
/**
|
||||
* Inserts a message
|
||||
*
|
||||
* @author Tim Düsterhus
|
||||
* @author Tim Düsterhus
|
||||
* @copyright 2010-2012 Tim Düsterhus
|
||||
* @license Creative Commons Attribution-NonCommercial-ShareAlike <http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode>
|
||||
* @package timwolla.wcf.chat
|
||||
@ -19,6 +19,10 @@ class ChatForm extends AbstractForm {
|
||||
public $message = '';
|
||||
public $room = null;
|
||||
public $userData = array();
|
||||
|
||||
/**
|
||||
* @see \wcf\page\AbstractForm::$useTemplate
|
||||
*/
|
||||
public $useTemplate = false;
|
||||
|
||||
/**
|
||||
@ -81,7 +85,7 @@ public function save() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @see \wcf\page\IPage::show()
|
||||
* @see \wcf\page\IPage::show()
|
||||
*/
|
||||
public function show() {
|
||||
header("HTTP/1.0 204 No Content");
|
||||
|
@ -22,7 +22,7 @@ class ChatMessagePage extends AbstractPage {
|
||||
public $useTemplate = false;
|
||||
|
||||
/**
|
||||
* @see \wcf\page\Page::readData()
|
||||
* @see \wcf\page\Page::readData()
|
||||
*/
|
||||
public function readData() {
|
||||
parent::readData();
|
||||
|
@ -12,7 +12,7 @@
|
||||
*/
|
||||
class ChatRoomCacheBuilder implements ICacheBuilder {
|
||||
/**
|
||||
* @see wcf\system\cache\ICacheBuilder::getData()
|
||||
* @see \wcf\system\cache\ICacheBuilder::getData()
|
||||
*/
|
||||
public function getData(array $cacheResource) {
|
||||
// get all chat rooms
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
namespace wcf\system\chat\permissions;
|
||||
namespace wcf\system\chat\permission;
|
||||
use \wcf\system\acl\ACLHandler;
|
||||
use \wcf\system\package\PackageDependencyHandler;
|
||||
use \wcf\system\WCF;
|
||||
@ -17,7 +17,7 @@ class ChatPermissionHandler extends \wcf\system\SingletonFactory {
|
||||
protected $chatPermissions = array();
|
||||
|
||||
/**
|
||||
* @see wcf\system\SingletonFactory::init()
|
||||
* @see \wcf\system\SingletonFactory::init()
|
||||
*/
|
||||
protected function init() {
|
||||
$packageID = PackageDependencyHandler::getPackageID('timwolla.wcf.chat');
|
||||
@ -78,4 +78,14 @@ public function getPermission(\wcf\data\chat\room\ChatRoom $room, $permission) {
|
||||
if (!isset($this->chatPermissions[$room->roomID][$permission])) return true;
|
||||
return (boolean) $this->chatPermissions[$room->roomID][$permission];
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears the cache.
|
||||
*/
|
||||
public static function clearCache() {
|
||||
$packageID = PackageDependencyHandler::getPackageID('timwolla.wcf.chat');
|
||||
$ush = \wcf\system\user\storage\UserStorageHandler::getInstance();
|
||||
|
||||
$ush->resetAll('chatUserPermissions', $packageID);
|
||||
}
|
||||
}
|
@ -12,7 +12,7 @@
|
||||
*/
|
||||
class ChatRouteListener implements \wcf\system\event\IEventListener {
|
||||
/**
|
||||
* @see wcf\system\event\IEventListener::execute()
|
||||
* @see \wcf\system\event\IEventListener::execute()
|
||||
*/
|
||||
public function execute($eventObj, $className, $eventName) {
|
||||
$route = new \wcf\system\request\Route('chatAction');
|
||||
|
@ -17,7 +17,7 @@ class ChatPageMenuItemProvider extends DefaultPageMenuItemProvider {
|
||||
/**
|
||||
* Hides the button when there is no valid room
|
||||
*
|
||||
* @see \wcf\system\menu\page\PageMenuItemProvider::isVisible()
|
||||
* @see \wcf\system\menu\page\PageMenuItemProvider::isVisible()
|
||||
*/
|
||||
public function isVisible() {
|
||||
// guests are not supported
|
||||
@ -43,7 +43,7 @@ public function isVisible() {
|
||||
/**
|
||||
* Modifies the link to show the Link we would be redirect to.
|
||||
*
|
||||
* @see \wcf\system\menu\page\PageMenuItemProvider::getLink()
|
||||
* @see \wcf\system\menu\page\PageMenuItemProvider::getLink()
|
||||
*/
|
||||
public function getLink() {
|
||||
return \wcf\system\request\LinkHandler::getInstance()->getLink('Chat', array(
|
||||
|
@ -12,14 +12,14 @@
|
||||
*/
|
||||
class TimeIntervalOptionType extends TextOptionType {
|
||||
/**
|
||||
* @see wcf\system\option\IOptionType::getData()
|
||||
* @see \wcf\system\option\IOptionType::getData()
|
||||
*/
|
||||
public function getData(\wcf\data\option\Option $option, $newValue) {
|
||||
return \wcf\util\ChatUtil::timeModifier($newValue);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see wcf\system\option\TextOptionType::getFormElement()
|
||||
* @see \wcf\system\option\TextOptionType::getFormElement()
|
||||
*/
|
||||
public function getFormElement(\wcf\data\option\Option $option, $value) {
|
||||
$tmp = (int) ($value / 60);
|
||||
|
Loading…
Reference in New Issue
Block a user