/** * Check whether a user has access to view discussions in a particular category. * * @since 2.0.18 * @example $UserModel->GetCategoryViewPermission($UserID, $CategoryID). * * @param $Sender UserModel. * @return bool Whether user has permission. */ public function userModel_GetCategoryViewPermission_Create($Sender) { static $PermissionModel = null; $UserID = arrayValue(0, $Sender->EventArguments, ''); $CategoryID = arrayValue(1, $Sender->EventArguments, ''); $Permission = val(2, $Sender->EventArguments, 'Vanilla.Discussions.View'); if ($UserID && $CategoryID) { if ($PermissionModel === null) { $PermissionModel = new PermissionModel(); } $Category = CategoryModel::categories($CategoryID); if ($Category) { $PermissionCategoryID = $Category['PermissionCategoryID']; } else { $PermissionCategoryID = -1; } $Result = $PermissionModel->GetUserPermissions($UserID, $Permission, 'Category', 'PermissionCategoryID', 'CategoryID', $PermissionCategoryID); return val($Permission, val(0, $Result), false) ? true : false; } return false; }
/** * Check whether a user has access to view discussions in a particular category. * * @since 2.0.18 * @example $UserModel->GetCategoryViewPermission($UserID, $CategoryID). * * @param $Sender UserModel. * @return bool Whether user has permission. */ public function UserModel_GetCategoryViewPermission_Create($Sender) { static $PermissionModel = NULL; $UserID = ArrayValue(0, $Sender->EventArguments, ''); $CategoryID = ArrayValue(1, $Sender->EventArguments, ''); $Permission = GetValue(2, $Sender->EventArguments, 'Vanilla.Discussions.View'); if ($UserID && $CategoryID) { if ($PermissionModel === NULL) { $PermissionModel = new PermissionModel(); } $Category = CategoryModel::Categories($CategoryID); if ($Category) { $PermissionCategoryID = $Category['PermissionCategoryID']; } else { $PermissionCategoryID = -1; } $Result = $PermissionModel->GetUserPermissions($UserID, $Permission, 'Category', 'PermissionCategoryID', 'CategoryID', $PermissionCategoryID); return GetValue($Permission, GetValue(0, $Result), FALSE) ? TRUE : FALSE; } return FALSE; }
/** * Check whether a user has access to view discussions in a particular category. * * @since 2.0.18 * @example $UserModel->GetCategoryViewPermission($UserID, $CategoryID). * * @param $Sender UserModel. * @return bool Whether user has permission. */ public function UserModel_GetCategoryViewPermission_Create($Sender) { static $PermissionModel = NULL; $UserID = ArrayValue(0, $Sender->EventArguments, ''); $CategoryID = ArrayValue(1, $Sender->EventArguments, ''); if ($UserID && $CategoryID) { if ($PermissionModel === NULL) $PermissionModel = new PermissionModel(); $Result = $PermissionModel->GetUserPermissions($UserID, 'Vanilla.Discussions.View', 'Category', 'PermissionCategoryID', 'CategoryID', $CategoryID); return (ArrayValue('Vanilla.Discussions.View', $Result[0], FALSE)) ? TRUE : FALSE; } return FALSE; }