/**
 * Update affected users in an inventory.
 *
 * @param int inventory id to update.
 * @param array List of affected users ids.
 * @param update = false to create and update = true to update
 */
function inventory_update_users($id_inventory, $users, $update = false)
{
    error_reporting(0);
    $where_clause = '';
    if (empty($users)) {
        $users = array(0);
    }
    if ($update) {
        $sql = sprintf("DELETE FROM tinventory_acl WHERE id_inventory = %d AND type='user'", $id_inventory);
        $res = process_sql($sql);
        if ($res !== false && $res > 0) {
            $updated = true;
        }
    }
    $type = 'user';
    foreach ($users as $key => $id_user) {
        if ($id_user != '') {
            $value = array();
            $value['id_inventory'] = $id_inventory;
            $value['id_reference'] = $id_user;
            $value['type'] = $type;
            $tmp = process_sql_insert('tinventory_acl', $value);
        }
    }
    if ($update && $updated === true) {
        inventory_tracking($id_inventory, INVENTORY_USERS_UPDATED);
    } else {
        if (!empty($users) && $users != array(0)) {
            inventory_tracking($id_inventory, INVENTORY_USERS_CREATED);
        }
    }
}
예제 #2
0
         //parent has object
         if ($id_object_type_inherit !== false) {
             $inherit_fields = get_db_all_rows_filter('tobject_type_field', array('id_object_type' => $id_object_type_inherit, 'inherit' => 1));
             if ($inherit_fields === false) {
                 $inherit_fields = array();
             }
             foreach ($inherit_fields as $key => $field) {
                 $values = array();
                 $values['id_object_type_field'] = $field['id'];
                 $values['id_inventory'] = $id;
                 $data = get_db_value_filter('data', 'tobject_field_data', array('id_inventory' => $id_parent, 'id_object_type_field' => $field['id']));
                 $values['data'] = $data;
                 process_sql_insert('tobject_field_data', $values);
             }
         }
         inventory_tracking($id, INVENTORY_PARENT_CREATED, $id_parent);
     }
     $result_companies = enterprise_hook('inventory_update_companies', array($id, get_parameter('companies')));
     $result_users = enterprise_hook('inventory_update_users', array($id, get_parameter('users')));
     $result_msg = '<h3 class="suc">' . __('Successfully created') . '</h3>';
     $result_msg .= "<h3><a href='index.php?sec=inventory&sec2=operation/inventories/inventory_detail&id={$id}'>" . __("Click here to continue working with Object #") . $id . "</a></h3>";
 } else {
     $result_msg = '<h3 class="error">' . $err_message . '</h3>';
 }
 $id = 0;
 $name = "";
 $description = "";
 $id_contract = "";
 $id_parent = "";
 $id_manufacturer = 0;
 $public = false;