Example #1
0
 public function testVisibility()
 {
     $this->Login();
     $p = new Printer();
     // Visibility from root + tree
     $this->setEntity('_test_root_entity', true);
     $this->assertTrue($p->can(getItemByTypeName('Printer', '_test_printer_all', true), READ));
     $this->assertTrue($p->can(getItemByTypeName('Printer', '_test_printer_ent0', true), READ));
     $this->assertTrue($p->can(getItemByTypeName('Printer', '_test_printer_ent1', true), READ));
     $this->assertTrue($p->can(getItemByTypeName('Printer', '_test_printer_ent2', true), READ));
     // Visibility from root only
     $this->setEntity('_test_root_entity', false);
     $this->assertTrue($p->can(getItemByTypeName('Printer', '_test_printer_all', true), READ));
     $this->assertTrue($p->can(getItemByTypeName('Printer', '_test_printer_ent0', true), READ));
     $this->assertFalse($p->can(getItemByTypeName('Printer', '_test_printer_ent1', true), READ));
     $this->assertFalse($p->can(getItemByTypeName('Printer', '_test_printer_ent2', true), READ));
     // Visibility from child
     $this->setEntity('_test_child_1', false);
     $this->assertTrue($p->can(getItemByTypeName('Printer', '_test_printer_all', true), READ));
     $this->assertFalse($p->can(getItemByTypeName('Printer', '_test_printer_ent0', true), READ));
     $this->assertTrue($p->can(getItemByTypeName('Printer', '_test_printer_ent1', true), READ));
     $this->assertFalse($p->can(getItemByTypeName('Printer', '_test_printer_ent2', true), READ));
 }
Example #2
0
 /**
  * Check right on Recursive object
  */
 public function testPrinter()
 {
     global $DB;
     $DB->connect();
     $ent0 = $this->sharedFixture['entity'][0];
     $ent1 = $this->sharedFixture['entity'][1];
     $ent2 = $this->sharedFixture['entity'][2];
     $printer = new Printer();
     $id[0] = $printer->add(array('name' => "Printer 1", 'entities_id' => $ent0, 'is_recursive' => 0));
     $this->assertGreaterThan(0, $id[0], "Fail to create Printer 1");
     $id[1] = $printer->add(array('name' => "Printer 2", 'entities_id' => $ent0, 'is_recursive' => 1));
     $this->assertGreaterThan(0, $id[1], "Fail to create Printer 2");
     $id[2] = $printer->add(array('name' => "Printer 3", 'entities_id' => $ent1, 'is_recursive' => 1));
     $this->assertGreaterThan(0, $id[2], "Fail to create Ptiner 3");
     $id[3] = $printer->add(array('name' => "Printer 4", 'entities_id' => $ent2));
     $this->assertGreaterThan(0, $id[3], "Fail to create Printer 4");
     // Super admin
     Session::changeProfile(4);
     $this->assertEquals(4, $_SESSION['glpiactiveprofile']['id']);
     $this->assertEquals(31, $_SESSION['glpiactiveprofile']['printer']);
     // See all
     $this->assertTrue(Session::changeActiveEntities("all"));
     $this->assertTrue($printer->can($id[0], READ), "Fail can read Printer 1");
     $this->assertTrue($printer->can($id[1], READ), "Fail can read Printer 2");
     $this->assertTrue($printer->can($id[2], READ), "Fail can read Printer 3");
     $this->assertTrue($printer->can($id[3], READ), "Fail can read Printer 4");
     $this->assertTrue($printer->canEdit($id[0]), "Fail can write Printer 1");
     $this->assertTrue($printer->canEdit($id[1]), "Fail can write Printer 2");
     $this->assertTrue($printer->canEdit($id[2]), "Fail can write Printer 3");
     $this->assertTrue($printer->canEdit($id[3]), "Fail can write Printer 4");
     // See only in main entity
     $this->assertTrue(Session::changeActiveEntities($ent0));
     $this->assertTrue($printer->can($id[0], READ), "Fail can read Printer 1");
     $this->assertTrue($printer->can($id[1], READ), "Fail can read Printer 2");
     $this->assertFalse($printer->can($id[2], READ), "Fail can't read Printer 3");
     $this->assertFalse($printer->can($id[3], READ), "Fail can't read Printer 1");
     $this->assertTrue($printer->canEdit($id[0]), "Fail can write Printer 1");
     $this->assertTrue($printer->canEdit($id[1]), "Fail can write Printer 2");
     $this->assertFalse($printer->canEdit($id[2]), "Fail can't write Printer 1");
     $this->assertFalse($printer->canEdit($id[3]), "Fail can't write Printer 1");
     // See only in child entity 1 + parent if recursive
     $this->assertTrue(Session::changeActiveEntities($ent1));
     $this->assertFalse($printer->can($id[0], READ), "Fail can't read Printer 1");
     $this->assertTrue($printer->can($id[1], READ), "Fail can read Printer 2");
     $this->assertTrue($printer->can($id[2], READ), "Fail can read Printer 3");
     $this->assertFalse($printer->can($id[3], READ), "Fail can't read Printer 4");
     $this->assertFalse($printer->canEdit($id[0]), "Fail can't write Printer 1");
     $this->assertFalse($printer->canEdit($id[1]), "Fail can't write Printer 2");
     $this->assertTrue($printer->canEdit($id[2]), "Fail can write Printer 2");
     $this->assertFalse($printer->canEdit($id[3]), "Fail can't write Printer 2");
     // See only in child entity 2 + parent if recursive
     $this->assertTrue(Session::changeActiveEntities($ent2));
     $this->assertFalse($printer->can($id[0], READ), "Fail can't read Printer 1");
     $this->assertTrue($printer->can($id[1], READ), "Fail can read Printer 2");
     $this->assertFalse($printer->can($id[2], READ), "Fail can't read Printer 3");
     $this->assertTrue($printer->can($id[3], READ), "Fail can read Printer 4");
     $this->assertFalse($printer->canEdit($id[0]), "Fail can't write Printer 1");
     $this->assertFalse($printer->canEdit($id[1]), "Fail can't write Printer 2");
     $this->assertFalse($printer->canEdit($id[2]), "Fail can't write Printer 3");
     $this->assertTrue($printer->canEdit($id[3]), "Fail can write Printer 4");
 }
Example #3
0
header_nocache();
if (!isset($_POST["id"])) {
    $_POST["id"] = "";
}
if (!isset($_POST["sort"])) {
    $_POST["sort"] = "";
}
if (!isset($_POST["order"])) {
    $_POST["order"] = "";
}
if (!isset($_POST["withtemplate"])) {
    $_POST["withtemplate"] = "";
}
checkRight("printer", "r");
$printer = new Printer();
if ($_POST["id"] > 0 && $printer->can($_POST["id"], 'r')) {
    if (!empty($_POST["withtemplate"])) {
        switch ($_REQUEST['glpi_tab']) {
            case 3:
                NetworkPort::showForItem('Printer', $_POST["id"], $_POST["withtemplate"]);
                break;
            case 4:
                Infocom::showForItem($printer, $_POST["withtemplate"]);
                Contract::showAssociated($printer, $_POST["withtemplate"]);
                break;
            case 5:
                Document::showAssociated($printer, $_POST["withtemplate"]);
                break;
            default:
                Plugin::displayAction($printer, $_REQUEST['glpi_tab'], $_POST["withtemplate"]);
        }