public function testCRUD() { midcom::get('auth')->request_sudo('midcom.core'); $person = new midcom_db_person(); $stat = $person->create(); $this->assertTrue($stat); $this->register_object($person); $person = new midcom_db_person($person->guid); $this->assertEquals('person #' . $person->id, $person->name); $this->assertEquals('person #' . $person->id, $person->rname); $person->firstname = ' Firstname '; $person->lastname = ' Lastname '; $stat = $person->update(); $this->assertTrue($stat); $this->assertEquals('Firstname Lastname', $person->name); $this->assertEquals('Lastname, Firstname', $person->rname); $group = $this->create_object('midcom_db_group'); $attributes = array('gid' => $group->id, 'uid' => $person->id); $member = $this->create_object('midcom_db_member', $attributes); $stat = $person->delete(); $this->assertTrue($stat); $qb = midcom_db_member::new_query_builder(); $qb->add_constraint('id', '=', $member->id); $this->assertEquals(0, $qb->count()); midcom::get('auth')->drop_sudo(); }
/** * @param mixed $handler_id The ID of the handler. * @param Array $args The argument list. * @param Array &$data The local request data. */ public function _handler_delete($handler_id, array $args, array &$data) { $this->_person = new midcom_db_person($args[0]); if ($this->_person->id != midcom_connection::get_user()) { midcom::get('auth')->require_user_do('org.openpsa.user:manage', null, 'org_openpsa_user_interface'); } if (array_key_exists('org_openpsa_user_deleteok', $_POST)) { $delete_succeeded = $this->_person->delete(); if ($delete_succeeded) { // Update the index $indexer = midcom::get('indexer'); $indexer->delete($this->_person->guid); return new midcom_response_relocate(''); } else { // Failure, give a message midcom::get('uimessages')->add($this->_l10n->get('org.openpsa.user'), $this->_l10n->get("failed to delete person, reason") . ' ' . midcom_connection::get_error_string(), 'error'); return new midcom_response_relocate('view/' . $this->_person->guid . '/'); } } $data['view'] = midcom_helper_datamanager2_handler::get_view_controller($this, $this->_person); $data['person'] = $this->_person; $this->add_breadcrumb('', sprintf($this->_l10n_midcom->get('delete %s'), $this->_person->get_label())); $this->bind_view_to_object($this->_person); }