From 44d00765eafbdcec3c9ecaef2e06a2b4488e6fb6 Mon Sep 17 00:00:00 2001 From: Marcel Werk Date: Fri, 4 Jan 2013 03:37:00 +0100 Subject: [PATCH] Small category system improvements --- .../lib/data/category/Category.class.php | 9 +++++++ .../system/category/CategoryHandler.class.php | 24 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/wcfsetup/install/files/lib/data/category/Category.class.php b/wcfsetup/install/files/lib/data/category/Category.class.php index 7d569470fe..f0ab4b88a0 100644 --- a/wcfsetup/install/files/lib/data/category/Category.class.php +++ b/wcfsetup/install/files/lib/data/category/Category.class.php @@ -73,6 +73,15 @@ class Category extends DatabaseObject implements IRouteController { return $this->categoryType; } + /** + * Returns the name of the category type of this category. + * + * @return string + */ + public function getCategoryTypeName() { + return CategoryHandler::getInstance()->getObjectType($this->objectTypeID)->objectType; + } + /** * @see wcf\system\request\IRouteController::getID() */ diff --git a/wcfsetup/install/files/lib/system/category/CategoryHandler.class.php b/wcfsetup/install/files/lib/system/category/CategoryHandler.class.php index 33e63f1045..8442e4d787 100644 --- a/wcfsetup/install/files/lib/system/category/CategoryHandler.class.php +++ b/wcfsetup/install/files/lib/system/category/CategoryHandler.class.php @@ -66,6 +66,30 @@ class CategoryHandler extends SingletonFactory { return $categories; } + /** + * Returns a list of accessible categories. + * + * @param string $objectType + * @param array $permissions filters categories by given permissions + * @return array comma separated category ids + */ + public function getAccessibleCategoryIDs($objectType, array $permissions) { + $categoryIDs = array(); + foreach ($this->getCategories($objectType) as $category) { + $result = true; + $categoryPermissions = CategoryPermissionHandler::getInstance()->getPermissions($category); + foreach ($permissions as $permission) { + $result = $result && !empty($categoryPermissions[$permission]); + } + + if ($result) { + $categoryIDs[] = $category->categoryID; + } + } + + return $categoryIDs; + } + /** * Returns the category object with the given category id. * -- 2.20.1