euromark 12 年 前
コミット
c083c828b2

+ 3 - 0
Controller/Component/Auth/TinyAuthorize.php

@@ -186,6 +186,9 @@ class TinyAuthorize extends BaseAuthorize {
 		$availableRoles = Configure::read($this->settings['aclModel']);
 		if (!is_array($availableRoles)) {
 			$Model = $this->getModel();
+			if (!isset($Model->{$this->settings['aclModel']})) {
+				throw new CakeException('Missing relationship between User and Role.');
+			}
 			$availableRoles = $Model->{$this->settings['aclModel']}->find('list', array('fields'=>array('alias', 'id')));
 			Configure::write($this->settings['aclModel'], $availableRoles);
 		}

+ 3 - 0
Test/Case/Controller/Component/Auth/TinyAuthorizeTest.php

@@ -316,6 +316,9 @@ INI;
 	 * @return void
 	 */
 	public function testWithRoleTable() {
+		$User = ClassRegistry::init('User');
+		$User->bindModel(array('belongsTo' => array('Role')), false);
+
 		// We want the session to be used.
 		Configure::delete('Role');