10

ここで説明するように、すべてのユーザーが利用規約に同意することを義務付けたいと思います。

Ruby on Rails/Devise-パスワードをリセットするときにモデルのカスタム検証オプションをバイパスする

ただし、上記のアプローチを適合させない2つの要件があります。

1)ユーザーは自己登録ではなく、システム管理者によって作成されます。管理者は明らかに、ユーザーに代わって利用規約に同意することはできません。ユーザーは、最初のログイン時に利用規約に同意するように求められます。

2)事後に利用規約が変更された場合。ユーザーは、その後のログインで新しい条件に再度同意する必要があります。

これらはかなり標準的なワークフローのようです。deviseはこれを達成する方法を提供しますか?

そうでない場合は、このチェックをアプリケーションコントローラーのbefore_filterに実装する必要があると思います。(アプリケーションロジックとのダーティミキシング認証を感じます...)

これに頼る必要がありますか、それとも誰かがより良い方法を提案できますか?

ありがとう

4

2 に答える 2

3

これはデバイスが処理するものではなく、TOS は認証に関連しないため、デバイスはこれを処理するべきではありません。

できることは、ステート マシンを実装するようなものですが、それは必要以上に複雑になる可能性があります。

簡単な方法は、accepted_tos ブール フィールドをユーザー モデルに追加し、それを before_filter に結び付けてから、TOS が更新されるたびにaccepted_tos を false に設定することです。

于 2012-05-24T02:14:54.040 に答える
-1

理論的には、JQuery を使用してアプリ内でさらに移動することを無効にすることはできませんか?

ボックスをチェックするか、続行ボタンを押すまで、フォームの「続行」ボタンまたは「ログイン」ボタンを無効にし、チェックボックスをオンにしたらログイン ボタンを有効にします。

その情報を保存する必要がある場合は、ユーザーのデータベースに列を作成するだけで、ユーザーがボックスをチェックしたり、続行ボタンを押したりしたときに投稿されるか、知る方法としてログイン数を利用することもできます.

user.logs > 0 の場合、ユーザーはすでに条件に同意しています。
user.logs == 0 の場合、ユーザーはログインする前に条件に同意する必要があります。

あなたの質問によると、すべてをDeviseに結びつけるのは非常に複雑に聞こえると思います。

お役に立てれば。

于 2012-05-23T21:04:08.670 に答える