euromark 12 年 前
コミット
5dec0e37fc

+ 2 - 1
Controller/Component/CommonComponent.php

@@ -1106,11 +1106,12 @@ class CommonComponent extends Component {
 	}
 
 	/**
+	 * Extract email from "name <email>" etc
+	 *
 	 * @deprecated
 	 * use splitEmail instead
 	 */
 	public function extractEmail($email) {
-		trigger_error('deprecated - use splitEmail');
 		if (($pos = mb_strpos($email, '<')) !== false) {
 			$email = substr($email, $pos + 1);
 		}

+ 16 - 12
Model/Behavior/CaptchaBehavior.php

@@ -5,7 +5,7 @@ define('CAPTCHA_MAX_TIME', HOUR);	# seconds the form will need to be submitted i
 
 App::uses('ModelBehavior', 'Model');
 App::uses('CaptchaLib', 'Tools.Lib');
-App::uses('CommonComponent', 'Tools.Controller/Component');
+App::uses('Utility', 'Tools.Utility');
 
 /**
  * CaptchaBehavior
@@ -25,9 +25,8 @@ class CaptchaBehavior extends ModelBehavior {
 	);
 
 	protected $error = '';
+
 	protected $internalError = '';
-	//
-	//protected $useSession = false;
 
 	public function setup(Model $Model, $settings = array()) {
 		$defaults = array_merge(CaptchaLib::$defaults, $this->defaults);
@@ -50,11 +49,8 @@ class CaptchaBehavior extends ModelBehavior {
 		if (isset($settings['log'])) {
 			$this->settings[$Model->alias]['log'] = (bool)$settings['log'];
 		}
-
-		//parent::setup($Model, $settings);
 	}
 
-
 	public function beforeValidate(Model $Model) {
 		parent::beforeValidate($Model);
 		if (!empty($this->Model->whitelist)) {
@@ -95,7 +91,12 @@ class CaptchaBehavior extends ModelBehavior {
 		return $list;
 	}
 
-
+	/**
+	 * CaptchaBehavior::_validateDummyField()
+	 *
+	 * @param mixed $data
+	 * @return
+	 */
 	protected function _validateDummyField($data) {
 		$dummyField = $this->settings[$this->Model->alias]['dummyField'];
 		if (!isset($data[$dummyField])) {
@@ -108,7 +109,6 @@ class CaptchaBehavior extends ModelBehavior {
 		return true;
 	}
 
-
 	/**
 	 * flood protection by time
 	 * TODO: SESSION based one as alternative
@@ -157,7 +157,7 @@ class CaptchaBehavior extends ModelBehavior {
 
 		$hash = $this->_buildHash($data);
 
-		if ($data['captcha_hash'] == $hash) {
+		if ($data['captcha_hash'] === $hash) {
 			return true;
 		}
 		# wrong captcha content or session expired
@@ -197,6 +197,12 @@ class CaptchaBehavior extends ModelBehavior {
 		return false;
 	}
 
+	/**
+	 * CaptchaBehavior::_buildHash()
+	 *
+	 * @param array $data
+	 * @return string Hash
+	 */
 	protected function _buildHash($data) {
 		return CaptchaLib::buildHash($data, $this->settings[$this->Model->alias]);
 	}
@@ -214,9 +220,7 @@ class CaptchaBehavior extends ModelBehavior {
 		if (!$this->settings[$this->Model->alias]['log']) {
 			return null;
 		}
-
-		//App::import('Component', 'RequestHandler');
-		$msg = 'IP \''.CakeRequest::clientIP().'\', Agent \''.env('HTTP_USER_AGENT').'\', Referer \''.env('HTTP_REFERER').'\', Host-Referer \''.CommonComponent::getReferer().'\'';
+		$msg = 'IP \''.Utility::getClientIp().'\', Agent \''.env('HTTP_USER_AGENT').'\', Referer \''.env('HTTP_REFERER').'\', Host-Referer \''.Utility::getReferer().'\'';
 		if (!empty($this->error)) {
 			$msg .= ', '.$this->error;
 		}

+ 28 - 35
Model/Qurl.php

@@ -18,6 +18,7 @@ class Qurl extends ToolsAppModel {
 	public $order = array('Qurl.created' => 'DESC');
 
 	protected $defaultLength = 22;
+
 	protected $validity = YEAR;
 
 	public $validate = array(
@@ -80,7 +81,12 @@ class Qurl extends ToolsAppModel {
 		return true;
 	}
 
-
+	/**
+	 * Qurl::translate()
+	 *
+	 * @param mixed $key
+	 * @return array
+	 */
 	public function translate($key) {
 		$res = $this->find('first', array('conditions'=>array($this->alias.'.key'=>$key, $this->alias.'.active'=>1)));
 		if (!$res) {
@@ -96,9 +102,10 @@ class Qurl extends ToolsAppModel {
 	}
 
 	/**
-	 * form the access url by key
+	 * Form the access url by key
+	 *
 	 * @param string $key
-	 * @retur string $url (absolute)
+	 * @return string Url (absolute)
 	 */
 	public static function urlByKey($key, $title = null, $slugTitle = true) {
 		if ($title && $slugTitle) {
@@ -108,10 +115,11 @@ class Qurl extends ToolsAppModel {
 	}
 
 	/**
-	 * makes an absolute url string ready to input anywhere
-	 * uses generate() internally to get the key
+	 * Makes an absolute url string ready to input anywhere.
+	 * Uses generate() internally to get the key.
+	 *
 	 * @param mixed $url
-	 * @return string $url (absolute)
+	 * @return string Url (absolute)
 	 */
 	public function url($url, $data = array()) {
 		$key = $this->generate($url, $data);
@@ -122,15 +130,16 @@ class Qurl extends ToolsAppModel {
 	}
 
 	/**
-	 * generates a Qurl key
+	 * Generates a Qurl key
+	 *
 	 * @param mixed $url
 	 * @param string $uid
-	 * @return string $key
+	 * @return string Key
 	 * 2011-07-12 ms
 	 */
 	public function generate($url, $data = array()) {
 		$url = Router::url($url, true);
-		$content = array_merge($data, array('url'=>$url));
+		$content = array_merge($data, array('url' => $url));
 		if (!isset($content['key'])) {
 			$content['key'] = '';
 		}
@@ -142,7 +151,8 @@ class Qurl extends ToolsAppModel {
 	}
 
 	/**
-	 * sets Key to "used" (only once!) - directly by ID
+	 * Sets Key to "used" (only once!) - directly by ID
+	 *
 	 * @param id of key to spend: necessary
 	 * @return boolean true on success, false otherwise
 	 * 2009-05-13 ms
@@ -161,6 +171,7 @@ class Qurl extends ToolsAppModel {
 	/**
 	 * remove old/invalid keys
 	 * does not remove recently used ones (for proper feedback)!
+	 *
 	 * @return boolean success
 	 * 2010-06-17 ms
 	 */
@@ -171,9 +182,10 @@ class Qurl extends ToolsAppModel {
 		return $this->deleteAll($conditions, false);
 	}
 
-
 	/**
-	 * get admin stats
+	 * Get admin stats
+	 *
+	 * @return array
 	 * 2010-10-22 ms
 	 */
 	public function stats() {
@@ -189,8 +201,9 @@ class Qurl extends ToolsAppModel {
 		return $keys;
 	}
 
-
 	/**
+	 * Generate key
+	 *
 	 * @param length (defaults to defaultLength)
 	 * @return string codekey
 	 * 2009-05-13 ms
@@ -200,28 +213,8 @@ class Qurl extends ToolsAppModel {
 			$length = $this->defaultLength;
 		}
 
-		if ((class_exists('CommonComponent') || App::import('Component', 'Common')) && method_exists('CommonComponent', 'generatePassword')) {
-			return CommonComponent::generatePassword($length);
-		} else {
-			return $this->_generateKey($length);
-		}
-	}
-
-	/**
-	 * backup method - only used if no custom function exists
-	 * 2010-06-17 ms
-	 */
-	protected function _generateKey($length = null) {
-		$chars = '234567890abcdefghijkmnopqrstuvwxyz'; // ABCDEFGHIJKLMNOPQRSTUVWXYZ
-		$i = 0;
-		$password = '';
-		$max = strlen($chars) - 1;
-
-		while ($i < $length) {
-			$password .= $chars[mt_rand(0, $max)];
-			$i++;
-		}
-		return $password;
+		App::uses('RandomLib', 'Tools.Lib');
+		return RandomLib::generatePassword($length);
 	}
 
 }

+ 10 - 30
Model/Token.php

@@ -13,9 +13,11 @@ App::uses('CommonComponent', 'Tools.Controller/Component');
 class Token extends ToolsAppModel {
 
 	public $displayField = 'key';
+
 	public $order = array('Token.created' => 'DESC');
 
 	protected $defaultLength = 22;
+
 	protected $validity = MONTH;
 
 	public $validate = array(
@@ -46,10 +48,9 @@ class Token extends ToolsAppModel {
 		'used' => array('numeric')
 	);
 
-	//public $types = array('activate');
-
 	/**
 	 * stores new key in DB
+	 *
 	 * @param string type: necessary
 	 * @param string key: optional key, otherwise a key will be generated
 	 * @param mixed user_id: optional (if used, only this user can use this key)
@@ -97,10 +98,11 @@ class Token extends ToolsAppModel {
 
 	/**
 	 * usesKey (only once!) - by KEY
+	 *
 	 * @param string type: necessary
 	 * @param string key: necessary
 	 * @param mixed user_id: needs to be provided if this key has a user_id stored
-	 * @return ARRAY(content) if successfully used or if already used (used=1), FALSE else
+	 * @return array Content - if successfully used or if already used (used=1), FALSE else
 	 * 2009-05-13 ms
 	 */
 	public function useKey($type, $key, $uid = null, $treatUsedAsInvalid = false) {
@@ -141,6 +143,7 @@ class Token extends ToolsAppModel {
 
 	/**
 	 * sets Key to "used" (only once!) - directly by ID
+	 *
 	 * @param id of key to spend: necessary
 	 * @return boolean true on success, false otherwise
 	 * 2009-05-13 ms
@@ -159,6 +162,7 @@ class Token extends ToolsAppModel {
 	/**
 	 * remove old/invalid keys
 	 * does not remove recently used ones (for proper feedback)!
+	 *
 	 * @return boolean success
 	 * 2010-06-17 ms
 	 */
@@ -169,7 +173,6 @@ class Token extends ToolsAppModel {
 		return $this->deleteAll($conditions, false);
 	}
 
-
 	/**
 	 * get admin stats
 	 * 2010-10-22 ms
@@ -187,42 +190,19 @@ class Token extends ToolsAppModel {
 		return $keys;
 	}
 
-
 	/**
 	 * Generator
 	 *
-	 * TODO: move functionality into Lib class
-	 *
 	 * @param length (defaults to defaultLength)
-	 * @return string key
+	 * @return string Key
 	 * 2009-05-13 ms
 	 */
 	public function generateKey($length = null) {
 		if (empty($length)) {
 			$length = $this->defaultLength;
 		}
-		if ((class_exists('CommonComponent') || App::import('Component', 'Common')) && method_exists('CommonComponent', 'generatePassword')) {
-			return CommonComponent::generatePassword($length);
-		} else {
-			return $this->_generateKey($length);
-		}
-	}
-
-	/**
-	 * backup method - only used if no custom function exists
-	 * 2010-06-17 ms
-	 */
-	protected function _generateKey($length = null) {
-		$chars = '234567890abcdefghijkmnopqrstuvwxyz'; // ABCDEFGHIJKLMNOPQRSTUVWXYZ
-		$i = 0;
-		$password = '';
-		$max = strlen($chars) - 1;
-
-		while ($i < $length) {
-			$password .= $chars[mt_rand(0, $max)];
-			$i++;
-		}
-		return $password;
+		App::uses('RandomLib', 'Tools.Lib');
+		return RandomLib::generatePassword($length);
 	}
 
 }

+ 5 - 5
Test/Case/Controller/Component/CommonComponentTest.php

@@ -10,7 +10,7 @@ App::uses('AppModel', 'Model');
  */
 class CommonComponentTest extends CakeTestCase {
 
-	public $fixtures = array('core.cake_session', 'plugin.tools.user', 'plugin.tools.role');
+	public $fixtures = array('core.cake_session', 'plugin.tools.auth_user', 'plugin.tools.role');
 
 	public function setUp() {
 		parent::setUp();
@@ -199,7 +199,7 @@ class CommonComponentTest extends CakeTestCase {
 			'password' => 123,
 			'role_id' => 1,
 		);
-		$User = ClassRegistry::init('ToolsUser');
+		$User = ClassRegistry::init('AuthUser');
 		$User->create();
 		$res = $User->save($user);
 		$this->assertTrue(!empty($res));
@@ -228,7 +228,7 @@ class CommonComponentTest extends CakeTestCase {
 			'password' => 123,
 			'role_id' => 1,
 		);
-		$User = ClassRegistry::init('ToolsUser');
+		$User = ClassRegistry::init('AuthUser');
 		$User->create();
 		$res = $User->save($user);
 		$this->assertTrue(!empty($res));
@@ -276,9 +276,9 @@ class CommonComponentTest extends CakeTestCase {
 
 /*** additional helper classes ***/
 
-class ToolsUser extends AppModel {
+class AuthUser extends AppModel {
 
-	public $name = 'User';
+	public $name = 'AuthUser';
 
 	public $alias = 'User';
 

+ 2 - 2
Test/Fixture/UserFixture.php

@@ -1,9 +1,9 @@
 <?php
 
 /**
- * User Fixture
+ * AuthUser Fixture
  */
-class UserFixture extends CakeTestFixture {
+class AuthUserFixture extends CakeTestFixture {
 
 	/**
 	 * Fields