在我的应用程序中,我想取消激活现有用户并能够创建具有相同用户名和电子邮件地址的新用户。我知道,kohana已将用户名和电子邮件地址设置为唯一我在用户表中创建了一个名为is_deactivated的列如果用户被取消激活,则标志设置为零,否则标志为" 1"。我编写了一个单独的函数,用于验证唯一用户名和电子邮件地址,并参考is_deactivated标志。 。如果标志是" 0",验证将忽略现有的用户名和电子邮件地址,用户可以使用相同的用户名和密码创建新用户。使用相同的用户名创建新的用户名。注册后,它是带我到现有的去激活用户帐户,而不是新的新帐户。但如果我使用相同的用户名和密码登录,它将带我到现有的去激活帐户。在登录时,我已经使用此is_deactivated标志验证了1。
用于创建具有相同用户名的新用户我已经评论了User.php中的以下行,
/var/www/html/zergid/modules/orm/classes/Model/Auth/User.php
public function rules()
{
return array(
// 'username' => array(
// array('not_empty'),
// array('max_length', array(':value', 32)),
// array(array($this, 'unique'), array('username', ':value')),
// ),
'password' => array(
array('not_empty'),
),
// 'email' => array(
// array('not_empty'),
// array('email'),
// array(array($this, 'unique'), array('email', ':value')),
// ),
);
}
需要有关如何登录新创建的帐户以及现有的未激活帐户的帮助。
由于
答案 0 :(得分:2)
当用户登录网站时,它会检查用户名,密码。我正在检查我的标记条件。请参阅下面的代码
/var/www/html/Kohana/modules/orm/classes/Kohana/Auth/ORM.php
protected function _login($user, $password, $remember)
{
if ( ! is_object($user))
{
$username = $user;
// Load the user
$user = ORM::factory('User');
$user->where($user->unique_key($username), '=', $username)->and_where('is_deleted','=',1)->find(); //checking the flag here(->and_where('is_deleted','=',1))
}
工作!