예제 #1
0
 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();
 }
예제 #2
0
파일: delete.php 프로젝트: nemein/openpsa
 /**
  * @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);
 }