[xoops-cvslog 6608] CVS update: xoops2jp/html/modules/user/admin/class

Back to archive index

NobuNobu nobun****@users*****
2007年 4月 30日 (月) 16:38:16 JST


Index: xoops2jp/html/modules/user/admin/class/Permission.class.php
diff -u /dev/null xoops2jp/html/modules/user/admin/class/Permission.class.php:1.1.4.1
--- /dev/null	Mon Apr 30 16:38:16 2007
+++ xoops2jp/html/modules/user/admin/class/Permission.class.php	Mon Apr 30 16:38:16 2007
@@ -0,0 +1,292 @@
+<?php
+
+if (!defined('XOOPS_ROOT_PATH')) exit();
+
+define('USER_PERMISSION_NONE', 0);
+define('USER_PERMISSION_READ', 1);
+define('USER_PERMISSION_ADMIN', 2);
+
+class User_Permission
+{
+	var $mGroupId;
+	var $mName;
+	var $mValue = USER_PERMISSION_NONE;
+
+	/**
+	 * User_PermissionItem
+	 */
+	var $mItem;
+
+	function User_Permission($groupId, &$item)
+	{
+		$this->mGroupId = $groupId;
+		$this->mItem =& $item;
+		$this->_load();
+	}
+	
+	function getId()
+	{
+		return $this->mItem->getId();
+	}
+	
+	function getValue()
+	{
+		return $this->mValue;
+	}
+
+	function setValue($value)
+	{
+		$value = intval($value);
+		$this->mValue = $value & ( USER_PERMISSION_READ | USER_PERMISSION_ADMIN );
+	}
+	
+	function _load()
+	{
+		$this->mValue = $this->mItem->loadPermission($this->mGroupId);
+	}
+
+	/**
+	 * Save a permission to database.
+	 */
+	function save()
+	{
+		$gpermHandler =& xoops_gethandler('groupperm');
+		
+		$name = $this->mItem->getReadPermName();
+		if ($name) {
+			$gperm =& $this->_createGperm($name);
+			if (!$gpermHandler->insert($gperm)) {
+				return false;
+			}
+		}
+
+		$name = $this->mItem->getAdminPermName();
+		if ($name) {
+			$gperm =& $this->_createGperm($name);
+			if ($gpermHandler->insert($gperm)) {
+				return false;
+			}
+		}
+		
+		return true;
+	}
+
+	function _createGperm($gperm_name = null)
+	{
+		$gpermHandler =& xoops_gethandler('groupperm');
+		$gperm =& $gpermHandler->create();
+		
+		$gperm->setVar('gperm_groupid', $this->mGroupId);
+		$gperm->setVar('gperm_itemid', $this->getId());
+		$gperm->setVar('gperm_modid', 1);
+		$gperm->setVar('gperm_name', $gperm_name);
+		
+		return $gperm;
+	}
+}
+
+class User_PermissionItem
+{
+	/**
+	 * @return int
+	 */
+	function getId()
+	{
+	}
+
+	/**
+	 * Return name
+	 */
+	function getName()
+	{
+	}
+	
+	/**
+	 * Return the url of module's control panel.
+	 */
+	function getAdminUrl()
+	{
+	}
+
+	/**
+	 * @return bool
+	 */
+	function isActive()
+	{
+	}
+
+	function loadPermission($groupId)
+	{
+	}
+	
+	/**
+	 * @return string
+	 */
+	function getReadPermName()
+	{
+		return null;
+	}
+
+	/**
+	 * @return string
+	 */
+	function getAdminPermName()
+	{
+		return null;
+	}
+}
+
+class User_PermissionModuleItem extends User_PermissionItem
+{
+	var $mModule;
+	
+	function User_PermissionModuleItem(&$module)
+	{
+		$this->mModule =& $module;
+	}
+	
+	function getId()
+	{
+		return $this->mModule->getVar('mid');
+	}
+
+	function getName()
+	{
+		return $this->mModule->getProperty('name');
+	}
+	
+	function getAdminUrl()
+	{
+	}
+	
+	function isActive()
+	{
+		return true;
+	}
+
+	function loadPermission($groupId)
+	{
+		$ret = USER_PERMISSION_NONE;
+
+		$gpermHandler =& xoops_gethandler('groupperm');
+		if ($gpermHandler->checkRight("module_admin", $this->mModule->getVar('mid'), $groupId)) {
+			$ret |= USER_PERMISSION_ADMIN;
+		}
+		
+		if ($gpermHandler->checkRight("module_read", $this->mModule->getVar('mid'), $groupId)) {
+			$ret |= USER_PERMISSION_READ;
+		}
+
+		return $ret;
+	}
+
+	function getReadPermName()
+	{
+		return "module_read";
+	}
+
+	function getAdminPermName()
+	{
+		return "module_admin";
+	}
+}
+
+class User_PermissionBlockItem extends User_PermissionItem
+{
+	var $mBlock;
+	
+	function User_PermissionBlockItem(&$block)
+	{
+		$this->mBlock =& $block;
+	}
+	
+	function getId()
+	{
+		return $this->mBlock->getVar('bid');
+	}
+	
+	function getName()
+	{
+		return $this->mBlock->getProperty('title');
+	}
+	
+	function getAdminUrl()
+	{
+	}
+	
+	function isActive()
+	{
+		return $this->mBlock->getProperty('visible')==1 ? true : false;
+	}
+
+	function loadPermission($groupId)
+	{
+		$ret = USER_PERMISSION_NONE;
+
+		$gpermHandler =& xoops_gethandler('groupperm');
+		if ($gpermHandler->checkRight("block_read", $this->mBlock->getVar('bid'), $groupId)) {
+			$ret |= USER_PERMISSION_READ;
+		}
+
+		return $ret;
+	}
+
+	
+	function getReadPermName()
+	{
+		return "block_read";
+	}
+}
+
+/**
+ * This class exists for X2 system module.
+ */
+class User_PermissionSystemAdminItem extends User_PermissionItem
+{
+	var $mId;
+	var $mName;
+	
+	function User_PermissionSystemAdminItem($id, $name)
+	{
+		$this->mId = $id;
+		$this->mName = $name;
+	}
+
+	function getId()
+	{
+		return $this->mId;
+	}
+
+	function getName()
+	{
+		return $this->mName;
+	}
+	
+	function getAdminUrl()
+	{
+	}
+	
+	function isActive()
+	{
+		return true;
+	}
+
+	function loadPermission($groupId)
+	{
+		$ret = USER_PERMISSION_NONE;
+		
+		$gpermHandler =& xoops_gethandler('groupperm');
+		if ($gpermHandler->checkRight("system_admin", $this->mId, $groupId)) {
+			$ret |= USER_PERMISSION_ADMIN;
+		}
+		
+		return $ret;
+	}
+
+	function getAdminPermName()
+	{
+		return "system_admin";
+	}
+}
+
+?>
\ No newline at end of file
Index: xoops2jp/html/modules/user/admin/class/index.html
diff -u /dev/null xoops2jp/html/modules/user/admin/class/index.html:1.1.4.1
--- /dev/null	Mon Apr 30 16:38:16 2007
+++ xoops2jp/html/modules/user/admin/class/index.html	Mon Apr 30 16:38:16 2007
@@ -0,0 +1 @@
+ <script>history.go(-1);</script>
\ No newline at end of file


xoops-cvslog メーリングリストの案内
Back to archive index