リビジョン 16e57cae app/Controller/UsersController.php

差分を見る:

app/Controller/UsersController.php
94 94
            DS . 'users' .          // コントローラ
95 95
            DS . 'activate' .                       // アクション
96 96
            DS . $this->User->id .                  // ユーザID
97
            DS . $this->User->getActivationHash();  // ハッシュ値
97
            DS . $this->User->activationHash();  // ハッシュ値
98 98
        $url = Router::url( $url, true);  // ドメイン(+サブディレクトリ)を付与
99 99
		$comment = $url;
100 100

  
101 101
		$Email = new CakeEmail();
102 102
		$Email->charset('ISO-2022-JP');
103 103
		$Email->emailFormat('text');
104
		$Email->template('user_register');
104
		$Email->template('register_mail');
105 105
		$Email->viewVars(array('name'=>$name,'comment'=>$comment));
106 106
		$Email->from( MAIL_FROM ); //MAIL_FROM:Config/const.phpにて定義
107 107
		$Email->to($mail);
108
		$Email->subject('[PICT CODE]問い合わせ');
108
		$Email->subject('【PictCode】仮登録が完了しました。');
109 109
		$Email->send();
110 110
	    }
111 111

  
......
117 117
	public function activate( $user_id = null, $in_hash = null) {
118 118
	    // UserモデルにIDをセット
119 119
	    $this->User->id = $user_id;
120
	    if ($this->User->exists() && $in_hash == $this->User->getActivationHash()) {
120
	    if ($this->User->exists() && $in_hash == $this->User->activationHash()) {
121 121
	    // 本登録に有効なURL
122 122
	        // statusフィールドを1に更新
123 123
	        $this->User->saveField( 'status', 1);
124 124
	        $this->Session->setFlash( 'Your account has been activated.');
125
			
126
			$mail = $this->Session->read('register.User.email');
127
			// exit;
128

  
129
			$Email = new CakeEmail();
130
			$Email->charset('ISO-2022-JP');
131
			$Email->emailFormat('text');
132
			$Email->template('register_comp');
133
			// $Email->viewVars(array('name'=>$name,'comment'=>$comment));
134
			$Email->from( MAIL_FROM ); //MAIL_FROM:Config/const.phpにて定義
135
			$Email->to($mail);
136
			$Email->subject('【PictCode】本登録が完了しました。');
137
			$Email->send();
138

  
125 139
	    }else{
126 140
	    // 本登録に無効なURL
127 141
	        $this->Session->setFlash( 'Invalid activation URL');
142
			return $this->redirect(array('controller' => 'top', 'action' => 'index'));
128 143
	    }
129 144
	}
130 145
	
......
198 213
 * @return void
199 214
 */
200 215
	public function login() {
201
<<<<<<< HEAD
202
		// if($this->Auth->user()){
203
		// 	$this->redirect($this->Auth->redirectUrl());                          
204
		// }
205
=======
206
		//var_dump(Security::hash( "123", 'blowfish'));
207
		if($this->register->user()){
208
			$this->redirect($this->Auth->redirectUrl());                          
216
		if($this->Auth->user()){
217
			// $this->redirect($this->Auth->redirectUrl());                          
218
					$this->redirect('/users/login_top');                          
209 219
		}
210
>>>>>>> origin/develop
211 220
		if ($this->request->is('post')) {
212
<<<<<<< HEAD
213
			if ($this->register->login()) {
214
				$this->redirect('/Users/login_top');                          
215
=======
216 221
			if ($this->Auth->login()) {
217 222
		 //    $options = array('conditions' => array('User.email' => $this->Auth->user('User.email'),'User.status' => 1));
218 223
			// $this->request->data = $this->User->find('first', $options);
......
224 229
				    'key' => 'positive',
225 230
					));
226 231
				}
227
>>>>>>> 8fa10255c509b6b77d694b7366878172b605ee59
228 232
			} else {
229 233
				$this->Flash->loginerror('ニックネームか パスワードにまちがいが あるよ!', array(
230 234
				    'key' => 'positive',
......
240 244
 * @return void
241 245
 */
242 246
	public function logout() {
243
	    $this->redirect($this->register->logout());
247
	    $this->redirect($this->Auth->logout());
244 248
	}
245 249

  
246 250

  
......
292 296
	            //  メール送信
293 297
		$this->set('register',$this->Session->read('register'));
294 298
		$mail = $this->Session->read('register.User.email');
295
		$options = array('conditions' => array('User.email' => $mail));
299
		$options = array('conditions' => array('User.email' => $mail, 'User.status' => 1));
296 300
		$user = $this->User->find('first', $options);
297 301
		$name = $user['User']['login_id'];
298 302

  
......
301 305
            DS . 'users' .          // コントローラ
302 306
            DS . 'newpwd' .                       // アクション
303 307
            DS . $user['User']['id'] .                  // ユーザID
304
            DS . $this->User->getActivationHash();  // ハッシュ値
308
            DS . $this->User->getActivationHash($user['User']['id']);  // ハッシュ値
305 309
        $url = Router::url( $url, true);  // ドメイン(+サブディレクトリ)を付与
306 310
		$comment = $url;
307 311
		$Email = new CakeEmail();
......
311 315
		$Email->viewVars(array('name'=>$name,'comment'=>$comment));
312 316
		$Email->from( MAIL_FROM ); //MAIL_FROM:Config/const.phpにて定義
313 317
		$Email->to($mail);
314
		$Email->subject('[PICT CODE]問い合わせ');
318
		$Email->subject('【PictCode】パスワードの再発行を受け付けました。');
315 319
		$Email->send();
316 320
	    }
317 321

  
......
327 331

  
328 332
	    // UserモデルにIDをセット
329 333
	    $this->User->id = $user_id;
330
	    if ($this->User->exists() && $in_hash == $this->User->getActivationHash()) {
331
	        $this->Session->setFlash( '無効なURLです');
332
			return $this->redirect(array('controller' => 'top', 'action' => 'index'));
333

  
334
	    }else{
334
	    if ($this->User->exists() && $in_hash == $this->User->activationHash()) {
335
	    	//idとハッシュ値が正規の場合、パスワード変更画面を表示
335 336
		    if ($this->request->is(array('post', 'put'))) {
336 337

  
337 338
				$this->set('user', $this->request->data);
338 339
				if ($this->User->save($this->request->data)) {
339
					return $this->redirect(array('action' => 'reset_pwd_comp_mail'));
340
					return $this->redirect(array('action' => 'reset_pwd_comp_mail',$user_id));
340 341
				} 
341 342
			} else {
342 343
			    $options = array('conditions' => array('User.id' => $user_id,'User.status' => 1));
343 344
				$this->request->data = $this->User->find('first', $options);
344 345
				$this->set('user', $this->request->data);
345
					  //   	var_dump($this->request->data);
346
		    	// exit;
347 346
			}
348
	    }
347
	    }else{
348
	    	//idとハッシュ値が不正の場合、トップページにリダイレクト
349
			$this->Session->setFlash( '無効なURLです');
350
			return $this->redirect(array('controller' => 'top', 'action' => 'index'));
349 351

  
350
	 //    $options = array('conditions' => array('User.id' => $user_id,'User.status' => 1));
351
		// // $this->request->data = $this->set('user',$this->User->find('first', $options));
352
		// $this->set('user',$this->User->find('first', $options));
353
		// // $this->set('user', $this->request->data);
354

  
355

  
356
	 //    // if ($this->User->exists() && $in_hash == $this->User->getActivationHash()) {
357
	 //    // var_dump($this->request->data);
358
	 //    // exit;
359
	 //        if ($this->request->is(array('post', 'put'))) {
360
		// 		// if($this->User->validates()){
361

  
362
	 //            	$this->User->save($this->request->data);
363
		// 			$this->redirect(array('action'=>'reset_pwd_comp_mail'));
364
	 //     //        } else {
365
		// 				// $this->Flash->loginerror('パスワードが一致しません。誤りがないかもう一度ご確認の上、正確にご入力ください。', array(
366
		// 				//     'key' => 'positive',
367
		// 				// 	));
368
	 //     //        }
369
	 //   //      } else {
370
		// 	 //    $options = array('conditions' => array('User.id' => $user_id,'User.status' => 1));
371
		// 		// $this->request->data = $this->set('user',$this->User->find('first', $options));
372
		// 		// // $this->set('user', $this->request->data);
373
	 //   //      $this->Session->setFlash( '無効なURLですaaa');
374
	 //        // }
375

  
376

  
377
	 //    }else{
378
	 //    // 本登録に無効なURL
379
	 //        $this->Session->setFlash( '無効なURLです');
380
	 //    }
352
	    }
381 353
	}
382 354

  
383 355
/**
384 356
 * 
385 357
 */
386
	public function reset_pwd_comp_mail() {
387
		// if (!empty( $this->data)){
388
		 //  保存
389
		$this->User->validate = $this->User->new_pwd_validate;
390
		    if( $this->User->save($this->request->data('user'))){
391
		            //  メール送信
392
			$this->set('register',$this->Session->read('register'));
358
	public function reset_pwd_comp_mail($user_id = null) {
359
		// $options = array('conditions' => array('User.' . $this->User->primaryKey => $user_id));
360
		// $this->request->data = $this->User->find('first', $options);
361
		// //バリデーションを無効にして保存
362
		// $this->User->validate = $this->User->reset_pwd_comp_mail_validate;
363

  
364
		// if( $this->User->save($this->request->data)){
365
		// var_dump($this->request->data['User']);
366
		// exit;
367
		if( !isset($this->request->data['User'])){
368
		// $this->User->save($this->request->data,false);
369
		    //  メール送信
393 370
			$mail = $this->Session->read('register.User.email');
394
			// exit;
395
			$options = array('conditions' => array('User.email' => $mail));
396
			$user = $this->User->find('first', $options);
397
			$name = $user['User']['login_id'];
398

  
399
	        // ユーザアクティベート(本登録)用URLの作成 DSはスラッシュの意味
400
	        // $url = 
401
	        //     DS . 'users' .          // コントローラ
402
	        //     DS . 'newpwd' .                       // アクション
403
	        //     DS . $user['User']['id'] .                  // ユーザID
404
	        //     DS . $this->User->getActivationHash();  // ハッシュ値
405
	        // $url = Router::url( $url, true);  // ドメイン(+サブディレクトリ)を付与
406
			$comment = "本文本文本文本文本文本文本文本文";
371

  
407 372
			$Email = new CakeEmail();
408 373
			$Email->charset('ISO-2022-JP');
409 374
			$Email->emailFormat('text');
410 375
			$Email->template('comp_reset_pwd');
411
			$Email->viewVars(array('name'=>$name,'comment'=>$comment));
376
			// $Email->viewVars(array('name'=>$name,'comment'=>$comment));
412 377
			$Email->from( MAIL_FROM ); //MAIL_FROM:Config/const.phpにて定義
413 378
			$Email->to($mail);
414
			$Email->subject('[PICT CODE]問い合わせ');
379
			$Email->subject('【PictCode】パスワードの再設定が完了しました。');
415 380
			$Email->send();
416
	    	}
417
	    // }
418
		// }else{
419
	 //        exit;
420
		// }
421
debug($this->User->validationErrors);
381
	    }
382
	    else{
383
		$options = array('conditions' => array('User.' . $this->User->primaryKey => $user_id));
384
		$this->request->data = $this->User->find('first', $options);
385
		//バリデーションを無効にして保存
386
		// $this->User->validate = $this->User->reset_pwd_comp_mail_validate;
387
		$this->User->save($this->request->data,false);
388
	    }
389

  
422 390
	}
423 391

  
424 392

  

他の形式にエクスポート: Unified diff