BUGFIX: Fixed some bugs in the performance fixes on Permission

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@84066 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Sam Minnee 2009-08-08 03:40:24 +00:00
parent 25f22d3e99
commit 7d49e1adbf

View File

@ -139,9 +139,12 @@ class Permission extends DataObject {
* not exist at all.
*/
public static function checkMember($member, $code, $arg = "any", $strict = true) {
$perms_list = self::get_declared_permissions_list();
$memberID = (is_object($member)) ? $member->ID : $member;
if(!$member) {
$memberID = $member = Member::currentUserID();
} else {
$memberID = (is_object($member)) ? $member->ID : $member;
}
if($arg == 'any') {
// Cache the permissions in memory
if(!isset(self::$cache_permissions[$memberID])) {
@ -227,15 +230,18 @@ class Permission extends DataObject {
*/
public static function permissions_for_member($memberID) {
$groupList = self::groupList($memberID);
$groupCSV = implode(", ", $groupList);
if($groupList) {
$groupCSV = implode(", ", $groupList);
// Raw SQL for efficiency
return DB::query("
SELECT \"Code\"
FROM \"Permission\"
WHERE \"Type\" = " . self::GRANT_PERMISSION . " AND \"GroupID\" IN ($groupCSV)
")->column();
// Raw SQL for efficiency
return DB::query("
SELECT \"Code\"
FROM \"Permission\"
WHERE \"Type\" = " . self::GRANT_PERMISSION . " AND \"GroupID\" IN ($groupCSV)
")->column();
} else {
return array();
}
}