-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
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
FIX avoid pgsql error #31360
FIX avoid pgsql error #31360
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -138,23 +138,19 @@ | |
if ($action == 'confirm_delete' && $user->hasRight('societe', 'contact', 'delete')) { | ||
$id = GETPOST('id', 'int'); | ||
if (!empty($id) && $socid > 0) { | ||
$db->begin(); | ||
|
||
$sql = "DELETE t, et FROM ".MAIN_DB_PREFIX."socpeople AS t"; | ||
$sql .= " LEFT JOIN ".MAIN_DB_PREFIX."socpeople_extrafields AS et ON t.rowid = et.fk_object"; | ||
$sql .= " WHERE t.fk_soc = ".((int) $socid); | ||
$sql .= " AND t.rowid = ".((int) $id); | ||
$sql .= " AND ((t.fk_user_creat = ".((int) $user->id)." AND t.priv = 1) OR t.priv = 0)"; | ||
|
||
$result = $db->query($sql); | ||
if (!$result) { | ||
setEventMessages($db->lasterror(), null, 'errors'); | ||
$db->rollback(); | ||
} else { | ||
$db->commit(); | ||
$contact = new Contact($db); | ||
|
||
$result = $contact->fetch($id); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There's no more error checking on the fetch() operation. Should it be checked also? |
||
$contact->oldcopy = clone $contact; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You'll have to ignore this one. // @phan-suppress-current-line PhanTypeMismatchProperty I opened a phan issue for this yesterday: phan/phan#4883 . There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @mdeweerd thank you |
||
|
||
$result = $contact->delete($user); | ||
|
||
if ($result > 0) { | ||
setEventMessages('ContactDeleted', null, 'mesgs'); | ||
header("Location: ".$_SERVER['PHP_SELF']."?id=".$socid); | ||
header("Location: ".$_SERVER['PHP_SELF']."?socid=".$socid); | ||
exit(); | ||
} else { | ||
setEventMessages($contact->error, $contact->errors, 'errors'); | ||
} | ||
} | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Using the fetch then delete will break the control on owner of contact.
Why not just removing the left join on the delete ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@eldy i use the "delete" function of contact class, same code inside the contact card for delete action. Maybe add this verification in "delete" function of contact class no ?