euromark 12 years ago
parent
commit
c083c828b2

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

@@ -186,6 +186,9 @@ class TinyAuthorize extends BaseAuthorize {
 		$availableRoles = Configure::read($this->settings['aclModel']);
 		$availableRoles = Configure::read($this->settings['aclModel']);
 		if (!is_array($availableRoles)) {
 		if (!is_array($availableRoles)) {
 			$Model = $this->getModel();
 			$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')));
 			$availableRoles = $Model->{$this->settings['aclModel']}->find('list', array('fields'=>array('alias', 'id')));
 			Configure::write($this->settings['aclModel'], $availableRoles);
 			Configure::write($this->settings['aclModel'], $availableRoles);
 		}
 		}

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

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