From bcbb8c9845809251bf56e2b12aa59b1019219bb4 Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Tue, 21 Jul 2015 11:05:25 -0700 Subject: [PATCH] self-service delete_contact, RT#37375 --- FS/FS/ClientAPI/MyAccount/contact.pm | 6 +++++- fs_selfservice/FS-SelfService/SelfService.pm | 18 +++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/FS/FS/ClientAPI/MyAccount/contact.pm b/FS/FS/ClientAPI/MyAccount/contact.pm index 30316c723..099da29e0 100644 --- a/FS/FS/ClientAPI/MyAccount/contact.pm +++ b/FS/FS/ClientAPI/MyAccount/contact.pm @@ -129,7 +129,11 @@ sub delete_contact { my($context, $session, $custnum) = _custoragent_session_custnum($p); return { 'error' => $session } if $context eq 'error'; - my $cust_contact = qsearchs('cust_contact', { contactnum=>$p->{contactnum} } ) + return { 'error' => 'Cannot delete the currently-logged in contact.' } + if $p->{contactnum} == $session->{contactnum}; + + my $cust_contact = qsearchs('cust_contact', { contactnum => $p->{contactnum}, + custnum => $custnum, }) or return { 'error' => 'Unknown contactnum' }; my $contact = $cust_contact->contact; diff --git a/fs_selfservice/FS-SelfService/SelfService.pm b/fs_selfservice/FS-SelfService/SelfService.pm index 0b65417ed..1978a8855 100644 --- a/fs_selfservice/FS-SelfService/SelfService.pm +++ b/fs_selfservice/FS-SelfService/SelfService.pm @@ -1377,7 +1377,7 @@ error message, or empty on success. =item edit_contact Updates information for the currently-logged in contact, or (optionally) the -specified contact +specified contact. Takes a hash reference as parameter with the following keys: @@ -1402,6 +1402,22 @@ error message, or empty on success. =item delete_contact +Deletes a contact. (Note: Cannot at this time delete the currently-logged in +contact.) + +Takes a hash reference as parameter with the following keys: + +=over 4 + +=item session_id + +=item contactnum + +=back + +Returns a hash reference with a single parameter, B, which contains an +error message, or empty on success. + =head2 "MY ACCOUNT" QUOTATION FUNCTIONS All of these functions require the user to be logged in, and the 'session_id' -- 2.11.0