Changeset 20840
- Timestamp:
- 10/06/08 17:36:44 (5 years ago)
- Location:
- events/phpframework/sabel/trunk
- Files:
-
- 1 removed
- 7 modified
-
addon/acl/config/Controller.php (modified) (1 diff)
-
addon/form/Addon.php (modified) (1 diff)
-
addon/form/Object.php (modified) (2 diffs)
-
addon/form/Processor.php (deleted)
-
app/index/controllers/Register.php (modified) (1 diff)
-
app/index/controllers/User.php (modified) (1 diff)
-
app/logics/Register.php (modified) (2 diffs)
-
tests/unit/logics/Register.php (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
events/phpframework/sabel/trunk/addon/acl/config/Controller.php
r20065 r20840 24 24 if ($this->isPublic()) return true; 25 25 26 $spec = array("(", ")", "&", "|"); 27 $buf = array(); 28 $rule = $this->isAllow; 29 $length = strlen($rule); 30 31 $prev = ""; 32 $next = ""; 33 34 for ($i = 0; $i < $length; $i++) { 35 $next = (isset($rule{$i + 1})) ? $rule{$i + 1} : ""; 36 $cur = $rule{$i}; 37 38 if ($i === 0) { 39 if ($cur === "(") { 40 $buf[] = "("; 41 } else { 42 $buf[] = '"' . $cur; 43 } 44 } elseif (in_array($prev, $spec) && 45 !in_array($cur, $spec)) { 46 $buf[] = '"' . $cur; 47 } elseif (in_array($next, $spec) && 48 !in_array($cur, $spec)) { 49 $buf[] = $rule{$i} . '"'; 50 } else { 51 $buf[] = $rule{$i}; 52 } 53 54 $prev = $rule{$i}; 55 } 56 57 $rule = implode("", $buf); 58 $length = strlen($rule); 59 if ($rule{$length - 1} !== ")") { 60 $rule .= '"'; 61 } 62 26 $s = microtime(); 27 $rule = preg_replace('/[a-z]+/', '"$0"', $this->isAllow); 63 28 foreach ($roles as $role) { 64 29 $rule = str_replace('"' . $role . '"', "true", $rule); 65 30 } 66 31 67 $rule = preg_replace('/"[a-z]+"/', 'false', $rule); 68 $rule = str_replace(array("|", "&"), array("||", "&&"), $rule); 32 $rule = str_replace( 33 array( "|", "&"), 34 array("||", "&&"), 35 preg_replace('/"[a-z]+"/', 'false', $rule) 36 ); 37 69 38 eval ('$match = ' . $rule . ';'); 70 39 -
events/phpframework/sabel/trunk/addon/form/Addon.php
r20065 r20840 16 16 public function execute($bus) 17 17 { 18 $bus->getProcessorList() 19 ->insertPrevious("action", "form", new Form_Processor("form")); 18 20 19 } 21 20 } -
events/phpframework/sabel/trunk/addon/form/Object.php
r20065 r20840 299 299 } 300 300 301 public function apply(array $values, array $allowCols = array()) 302 { 303 if (empty($values)) return $this; 304 305 if (empty($allowCols)) { 306 $allowCols = $this->getAllowColumns(); 307 } 308 309 $model = $this->model; 310 $mdlName = $model->getName(); 311 312 foreach ($values as $key => $value) { 313 if (strpos($key, self::NAME_SEPARATOR) === false) continue; 314 list ($name, $colName) = explode(self::NAME_SEPARATOR, $key); 315 if ($name !== $mdlName) continue; 316 317 if ($colName === "sbl_datetime" || $colName === "sbl_date") { 318 list ($k, ) = each($value); 319 if (!in_array($k, $allowCols, true)) continue; 320 } elseif (!in_array($colName, $allowCols, true)) { 321 continue; 322 } 323 324 if ($colName === "sbl_datetime") { 325 foreach ($value as $key => $date) { 326 if (!isset($date["second"])) $date["second"] = "00"; 327 if ($this->isDatetimeValuesCompleted($date)) { 328 $model->__set($key, $date["year"] . "-" . 329 $date["month"] . "-" . 330 $date["day"] . " " . 331 $date["hour"] . ":" . 332 $date["minute"] . ":" . 333 $date["second"]); 334 } else { 335 $model->__set($key, null); 336 } 337 } 338 } elseif ($colName === "sbl_date") { 339 foreach ($value as $key => $date) { 340 if ($this->isDatetimeValuesCompleted($date, false)) { 341 $model->__set($key, "{$date["year"]}-{$date["month"]}-{$date["day"]}"); 342 } else { 343 $model->__set($key, null); 344 } 345 } 346 } else { 347 $model->__set($colName, $value); 348 } 349 } 350 351 return $this; 352 } 353 354 protected function isDatetimeValuesCompleted($values, $isDatetime = true) 355 { 356 $keys = array("year", "month", "day"); 357 358 if ($isDatetime) { 359 $keys = array_merge($keys, array("hour", "minute", "second")); 360 } 361 362 foreach ($keys as $key) { 363 if (!isset($values[$key]) || $values[$key] === "") return false; 364 } 365 366 return true; 367 } 368 301 369 protected function createInputName($name) 302 370 { … … 304 372 } 305 373 306 pr ivatefunction getHtmlWriter($name, $inputName, $id = null, $class = null)374 protected function getHtmlWriter($name, $inputName, $id = null, $class = null) 307 375 { 308 376 if ($name !== "" && !in_array($name, $this->allowCols, true)) { -
events/phpframework/sabel/trunk/app/index/controllers/Register.php
r20153 r20840 24 24 { 25 25 $this->userForm = new Form_Object("User"); 26 $this->form->applyPostValues($this->userForm, array("user_name", "password", "email")); 26 $this->userForm->apply( 27 $this->request->fetchPostValues(), array("user_name", "password", "email") 28 ); 27 29 28 30 $result = $this->register->preregister($this->userForm->getModel()); -
events/phpframework/sabel/trunk/app/index/controllers/User.php
r20329 r20840 58 58 if (!$this->request->isPost()) return; 59 59 60 $this->form->applyPostValues($this->settingsForm, array("user_name", "email", "private_flag")); 60 $this->settingsForm->apply( 61 $this->request->fetchPostValues(), array("user_name", "email", "private_flag") 62 ); 63 61 64 $result = $this->getLogic("user")->updateSettings($this->settingsForm->getModel()); 62 65 -
events/phpframework/sabel/trunk/app/logics/Register.php
r20076 r20840 21 21 $result = new Logics_Result(); 22 22 $aUser->created_at = $aUser->updated_at = now(); 23 $aUser->password = md5($aUser->password);24 23 25 24 if ($errors = $this->validateModel($aUser)) { … … 28 27 29 28 $actKey = md5hash(); 29 $aUser->password = md5($aUser->password); 30 30 31 if (ENVIRONMENT === DEVELOPMENT) { 31 32 $aUser->save(); -
events/phpframework/sabel/trunk/tests/unit/logics/Register.php
r20065 r20840 17 17 $result = $register->preregister($aUser); 18 18 $this->isTrue($result->isFailure()); 19 $this->eq( 2, count($result->getErrors()));19 $this->eq(3, count($result->getErrors())); 20 20 /* ---------------------- */ 21 21 … … 23 23 $aUser = new User(); 24 24 $aUser->user_name = "test1"; 25 $aUser->password = "test"; 25 26 $aUser->email = "abc@example.com"; 26 27 $result = $register->preregister($aUser); … … 31 32 $aUser = new User(); 32 33 $aUser->user_name = "user"; 34 $aUser->password = "user"; 33 35 $aUser->email = "user@example.com"; 34 36 $result = $register->preregister($aUser); … … 53 55 $aUser = new User(); 54 56 $aUser->user_name = "sabel"; 57 $aUser->password = "sabel"; 55 58 $aUser->email = "sabel@example.com"; 56 59 $register->preregister($aUser);
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)