From 78c26158217288883788112c6fbf85dd1712c664 Mon Sep 17 00:00:00 2001 From: Hayden Smith Date: Tue, 12 Aug 2008 22:14:36 +0000 Subject: [PATCH] Refactored [47082]: Modified Member::mapInCMSGroups to make use of CMSMain::providePermissions. git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@60522 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- security/Member.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/security/Member.php b/security/Member.php index 82097a670..8d5b18b45 100644 --- a/security/Member.php +++ b/security/Member.php @@ -814,8 +814,18 @@ class Member extends DataObject { */ public static function mapInCMSGroups($groups = null) { if(!$groups || $groups->Count() == 0) { + $perms = array('ADMIN', 'CMS_ACCESS_AssetAdmin'); + + $cmsPerms = singleton('CMSMain')->providePermissions(); + + if(!empty($cmsPerms)) { + $perms = array_unique(array_merge($perms, array_keys($cmsPerms))); + } + + $SQL_perms = "'" . array_join(Convert::raw2sql($perms), "', '") . "'"; + $groups = DataObject::get('Group', "", "", - "INNER JOIN `Permission` ON `Permission`.GroupID = `Group`.ID AND `Permission`.Code IN ('ADMIN', 'CMS_ACCESS_AssetAdmin')"); + "INNER JOIN `Permission` ON `Permission`.GroupID = `Group`.ID AND `Permission`.Code IN ($SQL_perms)"); } $groupIDList = array();