Skip to content
Snippets Groups Projects
Commit 41d324db authored by Jelle's avatar Jelle
Browse files

fixed revision bug on user insert (uid was 0)

parent fb7636af
No related branches found
No related tags found
No related merge requests found
......@@ -24,8 +24,8 @@ function user_revision_menu() {
'title' => 'Revisions',
'page callback' => 'user_revision_overview',
'page arguments' => array(1),
'access callback' => 'user_access',
'access arguments' => array('view user revisions'),
'access callback' => '_user_revision_access',
'access arguments' => array(1, 'view user revisions'),
'weight' => 2,
'type' => MENU_LOCAL_TASK,
'file' => 'user_revision.pages.inc',
......@@ -67,6 +67,14 @@ function user_revision_menu() {
return $items;
}
/**
* Access callback
*/
function _user_revision_access($user, $perm){
$count = db_query("SELECT count(*) FROM {user_revision} WHERE uid = :uid", array(':uid' => $user->uid))->fetchField();
return user_access($perm) && ($count > 1);
}
/**
* Implements hook_permission().
*/
......@@ -268,6 +276,13 @@ function user_revision_user_load($uid, $vid = NULL, $reset = FALSE) {
}
}
/**
* Implements hook_user_insert().
*/
function user_revision_user_insert(&$edit, $account, $category){
db_query("UPDATE {user_revision} SET uid = :uid WHERE vid = :vid", array(':uid' => $account->uid, ':vid' => $account->vid));
}
/**
* Implements hook_user_presave().
*/
......@@ -298,8 +313,10 @@ function user_revision_user_delete($account) {
* Save record to the database.
*/
function _user_save_revision(&$edit, $update = NULL) {
$picture = $edit['picture'];
$edit['picture'] = $picture->fid;
if(isset($edit['picture'])){
$picture = $edit['picture'];
$edit['picture'] = $picture->fid;
}
// add timestamp and author
if (isset($update)) {
$res = drupal_write_record('user_revision', $edit, $update);
......@@ -307,8 +324,10 @@ function _user_save_revision(&$edit, $update = NULL) {
else {
$res = drupal_write_record('user_revision', $edit);
}
file_usage_add($picture, 'user_revision', 'user', $edit['vid']);
$edit['picture'] = $picture;
if(isset($edit['picture'])){
file_usage_add($picture, 'user_revision', 'user', $edit['vid']);
$edit['picture'] = $picture;
}
// pass new vid to user_save?
}
......@@ -317,7 +336,7 @@ function _user_save_revision(&$edit, $update = NULL) {
*/
function user_revision_list($user) {
$revisions = array();
$result = db_query('SELECT r.vid, r.name, r.log, r.authorid,r.ip, u.vid AS current_vid, r.timestamp, a.name FROM {user_revision} r LEFT JOIN {users} u ON u.vid = r.vid LEFT JOIN {users} a ON r.authorid = a.uid WHERE r.uid = :uid ORDER BY r.vid DESC', array(':uid' => $user->uid));
$result = db_query('SELECT r.vid, r.name, r.log, r.authorid,r.ip, u.vid AS current_vid, r.uid, r.timestamp, a.name FROM {user_revision} r LEFT JOIN {users} u ON u.vid = r.vid LEFT JOIN {users} a ON r.authorid = a.uid WHERE r.uid = :uid ORDER BY r.vid DESC', array(':uid' => $user->uid));
foreach ($result as $revision) {
$revisions[$revision->vid] = $revision;
}
......
......@@ -14,7 +14,6 @@ function user_revision_overview($user) {
$header = array(t('Revision'), array('data' => t('Operations'), 'colspan' => 2));
$revisions = user_revision_list($user);
$rows = array();
$revert_permission = FALSE;
if (user_access('revert revisions') || user_access('administer users')) {
......@@ -28,7 +27,6 @@ function user_revision_overview($user) {
foreach ($revisions as $revision) {
$row = array();
$operations = array();
if ($revision->current_vid > 0) {
$row[] = array('data' => t('!date by !username', array('!date' => l(format_date($revision->timestamp, 'short'), "user/$user->uid"), '!username' => theme('username', array('account' => $revision))))
. (($revision->log != '') ? '<p class="revision-log">' . filter_xss($revision->log) . '</p>' : ''),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment