Added UserLog.
This commit is contained in:
parent
632a528baa
commit
41e5dcc8f4
@ -89,8 +89,9 @@ class UserController extends ApplicationController
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (current_user()->is_mod_or_higher()) {
|
if (current_user()->is_mod_or_higher()) {
|
||||||
|
# RP: Missing feature.
|
||||||
// $this->user_ips = $this->user->user_logs->order('created_at DESC').pluck('ip_addr').uniq
|
// $this->user_ips = $this->user->user_logs->order('created_at DESC').pluck('ip_addr').uniq
|
||||||
$this->user_ips = array();
|
$this->user_ips = array_unique(UserLog::where(['user_id' => $this->user->id])->order('created_at DESC')->take()->getAttributes('ip_addr'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$tag_types = CONFIG()->tag_types;
|
$tag_types = CONFIG()->tag_types;
|
||||||
|
@ -46,15 +46,14 @@ class User extends Rails\ActiveRecord\Base
|
|||||||
|
|
||||||
public function log($ip)
|
public function log($ip)
|
||||||
{
|
{
|
||||||
# iTODO: UserLog doesn't exist yet.
|
|
||||||
return;
|
|
||||||
|
|
||||||
return Rails::cache()->fetch(['type' => 'user_logs', 'id' => $this->id, 'ip' => $ip], ['expires_in' => '10 minutes'], function() use ($ip) {
|
return Rails::cache()->fetch(['type' => 'user_logs', 'id' => $this->id, 'ip' => $ip], ['expires_in' => '10 minutes'], function() use ($ip) {
|
||||||
Rails::cache()->fetch(['type' => 'user_logs', 'id' => 'all'], ['expires_in' => '1 day'], function() {
|
Rails::cache()->fetch(['type' => 'user_logs', 'id' => 'all'], ['expires_in' => '1 day'], function() {
|
||||||
return UserLog::where('created_at < ?', date('Y-m-d 0:0:0', strtotime('-3 days')))->deleteAll();
|
# RP: Missing relation method "deleteAll()"
|
||||||
|
return UserLog::where('created_at < ?', date('Y-m-d 0:0:0', strtotime('-3 days')))->take()->each('destroy');
|
||||||
});
|
});
|
||||||
|
|
||||||
$log_entry = UserLog::where(['ip_addr' => $ip])->firstOrInitialize();
|
# RP: Missing feature.
|
||||||
|
$log_entry = UserLog::where(['ip_addr' => $ip, 'user_id' => $this->id])->firstOrInitialize();
|
||||||
$log_entry->created_at = date('Y-m-d H:i:s');
|
$log_entry->created_at = date('Y-m-d H:i:s');
|
||||||
return $log_entry->save();
|
return $log_entry->save();
|
||||||
});
|
});
|
||||||
@ -65,10 +64,6 @@ class User extends Rails\ActiveRecord\Base
|
|||||||
# characters in tags, they can be used to separate lines (with whitespace separating
|
# characters in tags, they can be used to separate lines (with whitespace separating
|
||||||
# tags). Denormalizing this into a field in users would save a SQL query.
|
# tags). Denormalizing this into a field in users would save a SQL query.
|
||||||
public $blacklisted_tags;
|
public $blacklisted_tags;
|
||||||
// protected function setBlacklistedTags($blacklists)
|
|
||||||
// {
|
|
||||||
// $this->('blacklisted_tags', $blacklists);
|
|
||||||
// }
|
|
||||||
|
|
||||||
public function blacklisted_tags()
|
public function blacklisted_tags()
|
||||||
{
|
{
|
||||||
|
12
app/models/UserLog.php
Executable file
12
app/models/UserLog.php
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
class UserLog extends Rails\ActiveRecord\Base
|
||||||
|
{
|
||||||
|
protected function associations()
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'belongs_to' => [
|
||||||
|
'user'
|
||||||
|
]
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
23
db/migrate/20140126192028_create_user_log.php
Executable file
23
db/migrate/20140126192028_create_user_log.php
Executable file
@ -0,0 +1,23 @@
|
|||||||
|
<?php
|
||||||
|
class CreateUserLog extends Rails\ActiveRecord\Migration\Base
|
||||||
|
{
|
||||||
|
public function up()
|
||||||
|
{
|
||||||
|
$this->execute(<<<EOS
|
||||||
|
CREATE TABLE `user_logs` (
|
||||||
|
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
|
`user_id` int(11) NOT NULL,
|
||||||
|
`ip_addr` varchar(46) NOT NULL,
|
||||||
|
`created_at` datetime NOT NULL,
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `created_at` (`created_at`),
|
||||||
|
KEY `user_id` (`user_id`)
|
||||||
|
) ENGINE=InnoDB
|
||||||
|
EOS
|
||||||
|
);
|
||||||
|
$this->execute(
|
||||||
|
"ALTER TABLE `user_logs`
|
||||||
|
ADD CONSTRAINT fk_user_logs__user_id FOREIGN KEY (user_id) REFERENCES `users`(id) ON DELETE CASCADE"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
34
db/table_schema/production/user_logs.php
Normal file
34
db/table_schema/production/user_logs.php
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
return array (
|
||||||
|
0 =>
|
||||||
|
array (
|
||||||
|
'id' =>
|
||||||
|
array (
|
||||||
|
'type' => 'int(11) unsigned',
|
||||||
|
'default' => NULL,
|
||||||
|
),
|
||||||
|
'user_id' =>
|
||||||
|
array (
|
||||||
|
'type' => 'int(11)',
|
||||||
|
'default' => NULL,
|
||||||
|
),
|
||||||
|
'ip_addr' =>
|
||||||
|
array (
|
||||||
|
'type' => 'varchar(46)',
|
||||||
|
'default' => NULL,
|
||||||
|
),
|
||||||
|
'created_at' =>
|
||||||
|
array (
|
||||||
|
'type' => 'datetime',
|
||||||
|
'default' => NULL,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
1 =>
|
||||||
|
array (
|
||||||
|
'pri' =>
|
||||||
|
array (
|
||||||
|
0 => 'id',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
;
|
Reference in New Issue
Block a user