Skip to content

Commit

Permalink
入部オファーメール送信まで
Browse files Browse the repository at this point in the history
  • Loading branch information
tyoshii committed Apr 29, 2016
1 parent 331f114 commit 075649d
Show file tree
Hide file tree
Showing 4 changed files with 74 additions and 25 deletions.
30 changes: 11 additions & 19 deletions fuel/app/classes/common/email.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,28 +21,20 @@ class Common_Email
*/
public static function sendmail($to, $subject, $body)
{
// developmentではログイン中のユーザーにしかメールを送信しない
if (Auth::check() && Fuel::$env === 'development') {
if ($to !== Auth::get_email()) {
Log::debug('ログイン時はログインユーザーのメールにしか送信しません。');
Log::debug("$to へのメールはスキップされました。");

return false;
if (Fuel::$env === 'development') {
// テスト用のメールアドレス以外は送信しない
$emails = Config::get('bms.test_email', array());
foreach ($emails as $email) {
if (preg_match("/$email/", $to)) {
goto SEND_EMAIL;
}
}
}

// テスト用のメールアドレス以外は送信しない
$emails = Config::get('bms.test_email', array());
foreach ($emails as $email) {
if (preg_match("/$email/", $to)) {
goto SEND_EMAIL;
}
}
Log::debug('config/bms.phpに設定されているtest_emailにマッチしないアドレスには送信しません。');
Log::debug("$to へのメールはスキップされました。");

Log::debug('config/bms.phpに設定されているtest_emailにマッチしないアドレスには送信しません。');
Log::debug("$to へのメールはスキップされました。");

return false;
return false;
}

SEND_EMAIL:

Expand Down
32 changes: 31 additions & 1 deletion fuel/app/classes/controller/team.php
Original file line number Diff line number Diff line change
Expand Up @@ -179,8 +179,38 @@ public function action_stats()
*/
public function action_offer()
{
$view = View::forge('team/offer.twig');
if (Input::post()) {

// 未ログインの場合は、ログインページヘ
if (! Auth::check()) {
return Response::redirect('/login?url='.Uri::current());
}

// 加入者にメール
$time = time();
$username = Auth::get('username');
$crypt = Crypt::encode($time.$username);
$offer_confirm_url = sprintf('%soffer/confirm?t=%s&u=%s&c=%s', Uri::base(false), $time, $username, $crypt);

$subject = '入部オファーが届いています';
$body = <<<__BODY__
チーム「{$this->_team->name}」に入部オファーが届いています。
以下のURLから入部オファーを確認してください。
$offer_confirm_url
__BODY__;

$admins = Model_Team::get_admins($this->_team->id);
foreach ($admins as $admin) {
Common_Email::sendmail(Model_Player::get_player_email($admin->id), $subject, $body);
}

// 成功ページ
Session::set_flash('info', 'チーム管理者にチーム加入リクエストを送付しました。');
return Response::redirect($this->_team->href);
}

$view = View::forge('team/offer.twig');
return Response::forge($view);
}
}
14 changes: 14 additions & 0 deletions fuel/app/classes/model/team.php
Original file line number Diff line number Diff line change
Expand Up @@ -189,4 +189,18 @@ public static function get_regist_form()

return $form;
}

/**
* get admins list
*
* @param string team id
* @return object Model_Player admins player list
*/
public static function get_admins($team_id) {

return Model_Player::query()
->where('team_id', $team_id)
->where('role', 'admin')
->get();
}
}
23 changes: 18 additions & 5 deletions fuel/app/views/team/offer.twig
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,23 @@
<h3>入部オファー</h3>

<pre>
はいりたいチームへ入部のオファーが出来ます。
入部オファーするとチーム管理者に通知が行き、
入部を承諾されるとあなたに通知が行きます。

未実装です。
加入したいチームへ入部のオファーが出来ます。
入部オファーするとチーム管理者にお知らせがいきます。
入部を承諾されるとあなたに通知が届きます。
</pre>

<hr>

{% if auth_check() %}

<form classs="form" action="" method="POST">
<input type="submit" class="btn btn-success" name="submit" value="このチームに入部オファーを出す">
</form>

{% else %}

<a href="/login?url={{current_url()}}">ログインしてください。</a>

{% endif %}

{% endblock main %}

0 comments on commit 075649d

Please sign in to comment.