Skip to content

update #46

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 23 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/nbproject/private/
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,11 @@ Download or checkout (SVN/Git) from http://yii-user.2mx.org and unpack files in

Git clone
---------

original clone:
clone git [email protected]:mishamx/yii-user.git

modified clone(command):
git clone https://github.com/prawee/yii-user.git

Configure
---------
Expand Down Expand Up @@ -37,7 +40,7 @@ Change your config main:
'sendActivationMail' => true,

# allow access for non-activated users
'loginNotActiv' => false,
'loginNotActive' => false,

# activate user on registration (only sendActivationMail = false)
'activeAfterRegister' => false,
Expand Down
4 changes: 2 additions & 2 deletions UserModule.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class UserModule extends CWebModule
* @var boolean
* @desc allow auth for is not active user
*/
public $loginNotActiv=false;
public $loginNotActive=false;

/**
* @var boolean
Expand All @@ -48,7 +48,7 @@ class UserModule extends CWebModule

/**
* @var boolean
* @desc login after registration (need loginNotActiv or activeAfterRegister = true)
* @desc login after registration (need loginNotActive or activeAfterRegister = true)
*/
public $autoLogin=true;

Expand Down
4 changes: 2 additions & 2 deletions components/UserIdentity.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ public function authenticate()
}
else if(Yii::app()->getModule('user')->encrypting($this->password)!==$user->password)
$this->errorCode=self::ERROR_PASSWORD_INVALID;
else if($user->status==0&&Yii::app()->getModule('user')->loginNotActiv==false)
else if($user->status==0&&Yii::app()->getModule('user')->loginNotActive==false)
$this->errorCode=self::ERROR_STATUS_NOTACTIV;
else if($user->status==-1)
$this->errorCode=self::ERROR_STATUS_BAN;
Expand All @@ -53,4 +53,4 @@ public function getId()
{
return $this->_id;
}
}
}
22 changes: 12 additions & 10 deletions components/WebUser.php
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,17 @@ protected function afterLogin($fromCookie)

public function updateSession() {
$user = Yii::app()->getModule('user')->user($this->id);
$this->name = $user->username;
$userAttributes = CMap::mergeArray(array(
'email'=>$user->email,
'username'=>$user->username,
'create_at'=>$user->create_at,
'lastvisit_at'=>$user->lastvisit_at,
),$user->profile->getAttributes());
foreach ($userAttributes as $attrName=>$attrValue) {
$this->setState($attrName,$attrValue);
if($user!==false){
$this->name = $user->username;
$userAttributes = CMap::mergeArray(array(
'email'=>$user->email,
'username'=>$user->username,
'create_at'=>$user->create_at,
'lastvisit'=>$user->lastvisit,
),$user->profile->getAttributes());
foreach ($userAttributes as $attrName=>$attrValue) {
$this->setState($attrName,$attrValue);
}
}
}

Expand All @@ -80,4 +82,4 @@ public function isAdmin() {
return Yii::app()->getModule('user')->isAdmin();
}

}
}
4 changes: 2 additions & 2 deletions controllers/LoginController.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ public function actionLogin()

private function lastViset() {
$lastVisit = User::model()->notsafe()->findByPk(Yii::app()->user->id);
$lastVisit->lastvisit_at = date('Y-m-d H:i:s');
$lastVisit->lastvisit = new CDbExpression('NOW()');
$lastVisit->save();
}

}
}
6 changes: 3 additions & 3 deletions controllers/RegistrationController.php
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public function actionRegistration() {
UserModule::sendMail($model->email,UserModule::t("You registered from {site_name}",array('{site_name}'=>Yii::app()->name)),UserModule::t("Please activate you account go to {activation_url}",array('{activation_url}'=>$activation_url)));
}

if ((Yii::app()->controller->module->loginNotActiv||(Yii::app()->controller->module->activeAfterRegister&&Yii::app()->controller->module->sendActivationMail==false))&&Yii::app()->controller->module->autoLogin) {
if ((Yii::app()->controller->module->loginNotActive||(Yii::app()->controller->module->activeAfterRegister&&Yii::app()->controller->module->sendActivationMail==false))&&Yii::app()->controller->module->autoLogin) {
$identity=new UserIdentity($model->username,$soucePassword);
$identity->authenticate();
Yii::app()->user->login($identity,0);
Expand All @@ -64,7 +64,7 @@ public function actionRegistration() {
Yii::app()->user->setFlash('registration',UserModule::t("Thank you for your registration. Contact Admin to activate your account."));
} elseif(Yii::app()->controller->module->activeAfterRegister&&Yii::app()->controller->module->sendActivationMail==false) {
Yii::app()->user->setFlash('registration',UserModule::t("Thank you for your registration. Please {{login}}.",array('{{login}}'=>CHtml::link(UserModule::t('Login'),Yii::app()->controller->module->loginUrl))));
} elseif(Yii::app()->controller->module->loginNotActiv) {
} elseif(Yii::app()->controller->module->loginNotActive) {
Yii::app()->user->setFlash('registration',UserModule::t("Thank you for your registration. Please check your email or login."));
} else {
Yii::app()->user->setFlash('registration',UserModule::t("Thank you for your registration. Please check your email."));
Expand All @@ -77,4 +77,4 @@ public function actionRegistration() {
$this->render('/user/registration',array('model'=>$model,'profile'=>$profile));
}
}
}
}
20 changes: 10 additions & 10 deletions data/schema.mysql.sql
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
CREATE TABLE `tbl_users` (
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(20) NOT NULL,
`password` varchar(128) NOT NULL,
`email` varchar(128) NOT NULL,
`activkey` varchar(128) NOT NULL DEFAULT '',
`create_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`lastvisit_at` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
`lastvisit` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00',
`superuser` int(1) NOT NULL DEFAULT '0',
`status` int(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
Expand All @@ -15,17 +15,17 @@ CREATE TABLE `tbl_users` (
KEY `superuser` (`superuser`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

CREATE TABLE `tbl_profiles` (
CREATE TABLE `profiles` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`lastname` varchar(50) NOT NULL DEFAULT '',
`firstname` varchar(50) NOT NULL DEFAULT '',
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;

ALTER TABLE `tbl_profiles`
ADD CONSTRAINT `user_profile_id` FOREIGN KEY (`user_id`) REFERENCES `tbl_users` (`id`) ON DELETE CASCADE;
ALTER TABLE `profiles`
ADD CONSTRAINT `profile_id` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE;

CREATE TABLE `tbl_profiles_fields` (
CREATE TABLE `profiles_fields` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`varname` varchar(50) NOT NULL,
`title` varchar(255) NOT NULL,
Expand All @@ -47,14 +47,14 @@ CREATE TABLE `tbl_profiles_fields` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;


INSERT INTO `tbl_users` (`id`, `username`, `password`, `email`, `activkey`, `superuser`, `status`) VALUES
INSERT INTO `users` (`id`, `username`, `password`, `email`, `activkey`, `superuser`, `status`) VALUES
(1, 'admin', '21232f297a57a5a743894a0e4a801fc3', '[email protected]', '9a24eff8c15a6a141ece27eb6947da0f', 1, 1),
(2, 'demo', 'fe01ce2a7fbac8fafaed7c982a04e229', '[email protected]', '099f825543f7850cc038b90aaff39fac', 0, 1);

INSERT INTO `tbl_profiles` (`user_id`, `lastname`, `firstname`) VALUES
INSERT INTO `profiles` (`user_id`, `lastname`, `firstname`) VALUES
(1, 'Admin', 'Administrator'),
(2, 'Demo', 'Demo');

INSERT INTO `tbl_profiles_fields` (`id`, `varname`, `title`, `field_type`, `field_size`, `field_size_min`, `required`, `match`, `range`, `error_message`, `other_validator`, `default`, `widget`, `widgetparams`, `position`, `visible`) VALUES
INSERT INTO `profiles_fields` (`id`, `varname`, `title`, `field_type`, `field_size`, `field_size_min`, `required`, `match`, `range`, `error_message`, `other_validator`, `default`, `widget`, `widgetparams`, `position`, `visible`) VALUES
(1, 'lastname', 'Last Name', 'VARCHAR', 50, 3, 1, '', '', 'Incorrect Last Name (length between 3 and 50 characters).', '', '', '', '', 1, 3),
(2, 'firstname', 'First Name', 'VARCHAR', 50, 3, 1, '', '', 'Incorrect First Name (length between 3 and 50 characters).', '', '', '', '', 0, 3);
(2, 'firstname', 'First Name', 'VARCHAR', 50, 3, 1, '', '', 'Incorrect First Name (length between 3 and 50 characters).', '', '', '', '', 0, 3);
24 changes: 12 additions & 12 deletions models/User.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class User extends CActiveRecord
* @var integer $superuser
* @var integer $status
* @var timestamp $create_at
* @var timestamp $lastvisit_at
* @var timestamp $lastvisit
*/

/**
Expand Down Expand Up @@ -57,11 +57,11 @@ public function rules()
array('username', 'match', 'pattern' => '/^[A-Za-z0-9_]+$/u','message' => UserModule::t("Incorrect symbols (A-z0-9).")),
array('status', 'in', 'range'=>array(self::STATUS_NOACTIVE,self::STATUS_ACTIVE,self::STATUS_BANNED)),
array('superuser', 'in', 'range'=>array(0,1)),
array('create_at', 'default', 'value' => date('Y-m-d H:i:s'), 'setOnEmpty' => true, 'on' => 'insert'),
array('lastvisit_at', 'default', 'value' => '0000-00-00 00:00:00', 'setOnEmpty' => true, 'on' => 'insert'),
array('create_at', 'default', 'value' => date('Y-m-d H:i:s'), 'setOnEmpty' => true, 'on' => 'insert'),
array('lastvisit', 'default', 'value' => '0000-00-00 00:00:00', 'setOnEmpty' => true, 'on' => 'insert'),
array('username, email, superuser, status', 'required'),
array('superuser, status', 'numerical', 'integerOnly'=>true),
array('id, username, password, email, activkey, create_at, lastvisit_at, superuser, status', 'safe', 'on'=>'search'),
array('id, username, password, email, activkey, create_at, lastvisit, superuser, status', 'safe', 'on'=>'search'),
):((Yii::app()->user->id==$this->id)?array(
array('username, email', 'required'),
array('username', 'length', 'max'=>20, 'min' => 3,'message' => UserModule::t("Incorrect username (length between 3 and 20 characters).")),
Expand Down Expand Up @@ -99,7 +99,7 @@ public function attributeLabels()
'createtime' => UserModule::t("Registration date"),
'create_at' => UserModule::t("Registration date"),

'lastvisit_at' => UserModule::t("Last visit"),
'lastvisit' => UserModule::t("Last visit"),
'superuser' => UserModule::t("Superuser"),
'status' => UserModule::t("Status"),
);
Expand All @@ -121,7 +121,7 @@ public function scopes()
'condition'=>'superuser=1',
),
'notsafe'=>array(
'select' => 'id, username, password, email, activkey, create_at, lastvisit_at, superuser, status',
'select' => 'id, username, password, email, activkey, create_at, lastvisit, superuser, status',
),
);
}
Expand All @@ -130,7 +130,7 @@ public function defaultScope()
{
return CMap::mergeArray(Yii::app()->getModule('user')->defaultScope,array(
'alias'=>'user',
'select' => 'user.id, user.username, user.email, user.create_at, user.lastvisit_at, user.superuser, user.status',
'select' => 'user.id, user.username, user.email, user.create_at, user.lastvisit, user.superuser, user.status',
));
}

Expand Down Expand Up @@ -169,7 +169,7 @@ public function search()
$criteria->compare('email',$this->email,true);
$criteria->compare('activkey',$this->activkey);
$criteria->compare('create_at',$this->create_at);
$criteria->compare('lastvisit_at',$this->lastvisit_at);
$criteria->compare('lastvisit',$this->lastvisit);
$criteria->compare('superuser',$this->superuser);
$criteria->compare('status',$this->status);

Expand All @@ -190,17 +190,17 @@ public function setCreatetime($value) {
}

public function getLastvisit() {
return strtotime($this->lastvisit_at);
return strtotime($this->lastvisit);
}

public function setLastvisit($value) {
$this->lastvisit_at=date('Y-m-d H:i:s',$value);
$this->lastvisit=date('Y-m-d H:i:s',$value);
}

public function afterSave() {
if (get_class(Yii::app())=='CWebApplication'&&Profile::$regMode==false) {
if (get_class(Yii::app())=='CWebApplication'&&Profile::$regMode==false && !Yii::app()->user->isGuest) {
Yii::app()->user->updateSession();
}
return parent::afterSave();
}
}
}
7 changes: 7 additions & 0 deletions nbproject/project.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
include.path=${php.global.include.path}
php.version=PHP_53
source.encoding=UTF-8
src.dir=.
tags.asp=false
tags.short=true
web.root=.
9 changes: 9 additions & 0 deletions nbproject/project.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.php.project</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/php-project/1">
<name>yii-user</name>
</data>
</configuration>
</project>
6 changes: 3 additions & 3 deletions views/admin/_search.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@
</div>

<div class="row">
<?php echo $form->label($model,'lastvisit_at'); ?>
<?php echo $form->textField($model,'lastvisit_at'); ?>
<?php echo $form->label($model,'lastvisit'); ?>
<?php echo $form->textField($model,'lastvisit'); ?>
</div>

<div class="row">
Expand All @@ -51,4 +51,4 @@

<?php $this->endWidget(); ?>

</div><!-- search-form -->
</div><!-- search-form -->
2 changes: 1 addition & 1 deletion views/admin/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
'value'=>'CHtml::link(UHtml::markSearch($data,"email"), "mailto:".$data->email)',
),
'create_at',
'lastvisit_at',
'lastvisit',
array(
'name'=>'superuser',
'value'=>'User::itemAlias("AdminStatus",$data->superuser)',
Expand Down
2 changes: 1 addition & 1 deletion views/admin/view.php
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
'email',
'activkey',
'create_at',
'lastvisit_at',
'lastvisit',
array(
'name' => 'superuser',
'value' => User::itemAlias("AdminStatus",$model->superuser),
Expand Down
4 changes: 2 additions & 2 deletions views/profile/profile.php
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@
<td><?php echo $model->create_at; ?></td>
</tr>
<tr>
<th class="label"><?php echo CHtml::encode($model->getAttributeLabel('lastvisit_at')); ?></th>
<td><?php echo $model->lastvisit_at; ?></td>
<th class="label"><?php echo CHtml::encode($model->getAttributeLabel('lastvisit')); ?></th>
<td><?php echo $model->lastvisit; ?></td>
</tr>
<tr>
<th class="label"><?php echo CHtml::encode($model->getAttributeLabel('status')); ?></th>
Expand Down
2 changes: 1 addition & 1 deletion views/user/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,6 @@
'value' => 'CHtml::link(CHtml::encode($data->username),array("user/view","id"=>$data->id))',
),
'create_at',
'lastvisit_at',
'lastvisit',
),
)); ?>
4 changes: 2 additions & 2 deletions views/user/view.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@
array_push($attributes,
'create_at',
array(
'name' => 'lastvisit_at',
'value' => (($model->lastvisit_at!='0000-00-00 00:00:00')?$model->lastvisit_at:UserModule::t('Not visited')),
'name' => 'lastvisit',
'value' => (($model->lastvisit!='0000-00-00 00:00:00')?$model->lastvisit:UserModule::t('Not visited')),
)
);

Expand Down