Menu

#1272 XoopsMemberHandler delete functions always returns true

XOOPS_2.5.x
pending
1
2014-08-05
2013-05-27
zyspec
No

The delete order of group and member information needs to be reversed so that group object is deleted after the member object. The delete functions always return true, independent of actual success.

In ./kernel/member.php the deleteGroup and deleteUser functions currently are:

    /**
     * delete a group
     *
     * @param object $group reference to the group to delete
     * @return bool FALSE if failed
     */
    function deleteGroup(&$group)
    {
        $this->_gHandler->delete($group);
        $this->_mHandler->deleteAll(new Criteria('groupid', $group->getVar('groupid')));
        return true;
    }

    /**
     * delete a user
     *
     * @param object $user reference to the user to delete
     * @return bool FALSE if failed
     */
    function deleteUser(&$user)
    {
        $this->_uHandler->delete($user);
        $this->_mHandler->deleteAll(new Criteria('uid', $user->getVar('uid')));
        return true;
    }

But the code should be something like:

    /**
     * delete a group
     *
     * @param object $group reference to the group to delete
     * @return bool FALSE if failed
     */
    function deleteGroup(&$group)
    {
        $s1 = $this->_mHandler->deleteAll(new Criteria('groupid', $group->getVar('groupid')));
        $s2 = $this->_gHandler->delete($group);
        return ($s1 && $s2) ? true : false;
    }

    /**
     * delete a user
     *
     * @param object $user reference to the user to delete
     * @return bool FALSE if failed
     */
    function deleteUser(&$user)
    {
        $s1 = $this->_mHandler->deleteAll(new Criteria('uid', $user->getVar('uid')));
        $s2 = $this->_uHandler->delete($user);
        return ($s1 && $s2) ? true : false;
    }

Discussion

  • Richard Griffith

    Incorporated changes as suggested.

     
  • Richard Griffith

    • status: open --> pending
    • assigned_to: Richard Griffith
     

Log in to post a comment.