Ejemplo n.º 1
0
        F_print_error('ERROR', $l['m_not_authorized_to_view']);
        $dcn_id = 0;
        $sts_id = 0;
        $rck_id = 0;
    } else {
        if (isset($_REQUEST['sts_id']) and (!isset($_REQUEST['change_datacenter']) or empty($_REQUEST['change_datacenter']))) {
            $sts_id = intval($_REQUEST['sts_id']);
            $sts_perm = F_getUserPermission($user_id, K_TABLE_SUITE_GROUPS, $sts_id);
            if ($sts_perm == 0) {
                F_print_error('ERROR', $l['m_not_authorized_to_view']);
                $sts_id = 0;
                $rck_id = 0;
            } else {
                if (isset($_REQUEST['rck_id']) and (!isset($_REQUEST['change_suite']) or empty($_REQUEST['change_suite']))) {
                    $rck_id = intval($_REQUEST['rck_id']);
                    $user_permissions = F_getUserPermission($user_id, K_TABLE_RACK_GROUPS, $rck_id);
                    if ($user_permissions == 0) {
                        F_print_error('ERROR', $l['m_not_authorized_to_view']);
                        $rck_id = 0;
                    }
                } else {
                    $rck_id = 0;
                }
            }
        } else {
            $sts_id = 0;
            $rck_id = 0;
        }
    }
} else {
    $dcn_id = 0;
Ejemplo n.º 2
0
 while ($mst = F_db_fetch_array($rst)) {
     $sts_permission = F_getUserPermission($user_id, K_TABLE_SUITE_GROUPS, $mst['sts_id']);
     if ($sts_permission > 0) {
         $suite = '<a href="tce_view_suite.php?dcn_id=' . $mdc['dcn_id'] . '&amp;sts_id=' . $mst['sts_id'] . '" title="' . $l['t_view_suite'] . '">' . $mst['sts_name'] . '</a>';
         echo '<h2 style="text-align:left;">&bull; ' . $datacenter . ' &rarr; ' . $suite . '</h2>';
         // *** GET RACK INFO
         $rack_pos = array();
         // store rack positions
         $rack_name = array();
         //store rack names
         $sql = 'SELECT * FROM ' . K_TABLE_RACKS . ' WHERE rck_sts_id=' . $mst['sts_id'] . ' ORDER BY rck_name ASC';
         if ($r = F_db_query($sql, $db)) {
             while ($m = F_db_fetch_array($r)) {
                 $rack_pos[$m['rck_position_x']][$m['rck_position_y']] = $m['rck_id'];
                 $rack_name[$m['rck_id']] = $m['rck_name'] . ' - ' . $m['rck_label'] . ' - ' . $m['rck_tag'];
                 $rck_permission[$m['rck_id']] = F_getUserPermission($user_id, K_TABLE_RACK_GROUPS, $m['rck_id']);
             }
         } else {
             F_display_db_error();
         }
         // *** MAP OF RACKS ON SELECTED SUITE
         echo '<div class="row">' . K_NEWLINE;
         echo '<table class="suite">' . K_NEWLINE;
         for ($y = $mst['sts_height']; $y >= 0; --$y) {
             echo '<tr>';
             echo '<td style="text-align:center;">' . $y . '</td>';
             for ($x = 1; $x <= $mst['sts_width']; ++$x) {
                 if ($y == 0) {
                     echo '<td style="text-align:center;">' . $x . '</td>';
                 } else {
                     if (isset($rack_pos[$x][$y]) and ($rck_permission[$rack_pos[$x][$y]] & 1) == 1) {
Ejemplo n.º 3
0
                }
            }
        } else {
            $sts_id = 0;
            $rck_id = 0;
        }
    }
} else {
    $dcn_id = 0;
    $sts_id = 0;
    $rck_id = 0;
}
// selected or default object
if (isset($_REQUEST['obj_id']) and (!isset($_REQUEST['change_datacenter']) or empty($_REQUEST['change_datacenter'])) and (!isset($_REQUEST['change_suite']) or empty($_REQUEST['change_suite'])) and (!isset($_REQUEST['change_rack']) or empty($_REQUEST['change_rack']))) {
    $obj_id = intval($_REQUEST['obj_id']);
    $user_permissions = F_getUserPermission($user_id, K_TABLE_OBJECT_GROUPS, $obj_id);
    if ($user_permissions == 0) {
        F_print_error('ERROR', $l['m_not_authorized_to_edit']);
        $obj_id = 0;
    }
    if ($obj_id > 0 and ($dcn_id == 0 or $sts_id == 0 or $rck_id == 0)) {
        // retrive location values
        $sql = 'SELECT dcn_id, sts_id, rck_id
		FROM ' . K_TABLE_DATACENTERS . ', ' . K_TABLE_SUITES . ', ' . K_TABLE_RACKS . ', ' . K_TABLE_LOCATIONS . ', ' . K_TABLE_OBJECTS . '
		WHERE loc_obj_id=obj_id AND loc_rack_id=rck_id AND rck_sts_id=sts_id AND sts_dcn_id=dcn_id AND obj_id=' . $obj_id . ' LIMIT 1';
        if ($r = F_db_query($sql, $db)) {
            if ($m = F_db_fetch_array($r)) {
                $dcn_id = $m['dcn_id'];
                $sts_id = $m['sts_id'];
                $rck_id = $m['rck_id'];
            }
Ejemplo n.º 4
0
/**
 * Get an HTML representation of objects on the selected rack.
 * @param $dcn_id (int) ID of selected datacenter.
 * @param $sts_id (int) ID of selected suite.
 * @param $rck_id (int) ID of selected rack.
 * @param $rack_data (array) Array of rack data objects.
 * @return string.
 */
function getRackStack($dcn_id, $sts_id, $rck_id, &$rack_data)
{
    global $l, $db;
    require_once '../config/tce_config.php';
    require_once 'tce_functions_group_permissions.php';
    $user_id = intval($_SESSION['session_user_id']);
    $dcn_id = intval($dcn_id);
    $sts_id = intval($sts_id);
    $rck_id = intval($rck_id);
    // get ID for 'guest' object type
    $guest_obt_id = F_getObjectTypeID('guest');
    $rck_permission = F_getUserPermission($user_id, K_TABLE_RACK_GROUPS, $rck_id);
    // get objects on rack
    $rackstack = array();
    $sql = 'SELECT * FROM ' . K_TABLE_OBJECTS . ', ' . K_TABLE_LOCATIONS . ' WHERE obj_id=loc_obj_id AND loc_rack_id=' . $rck_id . ' ORDER BY loc_row_top DESC, loc_front DESC, loc_center DESC, loc_rear DESC';
    if ($r = F_db_query($sql, $db)) {
        while ($m = F_db_fetch_assoc($r)) {
            $obj_permission = F_getUserPermission($user_id, K_TABLE_OBJECT_GROUPS, $m['obj_id']);
            if ($obj_permission > 0) {
                // get object position on the row
                $rpos = bindec(intval($m['loc_front']) . intval($m['loc_center']) . intval($m['loc_rear']));
                switch ($m['loc_side']) {
                    case 'left':
                    case 'right':
                        $rkey = $m['loc_side'] . '_' . $m['loc_row_top'];
                        if (F_getBoolean($m['loc_front'])) {
                            $rkey .= '_front';
                        } elseif (F_getBoolean($m['loc_rear'])) {
                            $rkey .= '_rear';
                        }
                        break;
                    case 'top':
                    case 'bottom':
                        $rkey = $m['loc_side'] . '_' . $m['loc_row_top'] . '_' . $rpos;
                        break;
                    case '-':
                    default:
                        $rkey = $m['loc_row_top'] . '_' . $rpos;
                        break;
                }
                $rackstack[$rkey] = $m;
                // get guest list
                $rackstack[$rkey]['guests'] = F_getGuestList($m['obj_id'], $guest_obt_id);
                // get capacity for each object on rack
                $capacity = array();
                F_get_object_data_array($m['obj_id'], $ilo, $capacity);
                if (isset($capacity) and !empty($capacity)) {
                    $rackstack[$rkey]['capacity'] = $capacity;
                }
            }
        }
    } else {
        F_display_db_error();
    }
    $rackobjs = '<table class="rack">' . K_NEWLINE;
    $rackobjs .= '<tr style="font-size:80%;"><th>#</th>';
    $rackobjs .= '<th title="' . $l['w_front'] . ' - ' . $l['w_left'] . '">FL</th><th title="' . $l['w_front'] . ' - ' . $l['w_right'] . '">FR</th>';
    $rackobjs .= '<th style="min-width:50px;">' . $l['w_front'] . '</th>';
    $rackobjs .= '<th style="min-width:50px;">' . $l['w_center'] . '</th>';
    $rackobjs .= '<th style="min-width:50px;">' . $l['w_rear'] . '</th>';
    $rackobjs .= '<th title="' . $l['w_rear'] . ' - ' . $l['w_left'] . '">RL</th><th title="' . $l['w_rear'] . ' - ' . $l['w_right'] . '">RR</th></tr>';
    $nextrow_front = $rack_data['rck_height'] + 1;
    $nextrow_center = $nextrow_front;
    $nextrow_rear = $nextrow_front;
    $nextrow_frontleft = $nextrow_front;
    $nextrow_frontright = $nextrow_front;
    $nextrow_rearleft = $nextrow_front;
    $nextrow_rearright = $nextrow_front;
    // initialize array to store the number of free slots
    $freeslots = array('3L' => 0, '2L' => 0, '1L' => 0);
    for ($pos = $rack_data['rck_height'] + 1; $pos >= 0; --$pos) {
        if ($pos > $rack_data['rck_height']) {
            // top
            $slidenum = $l['w_top'];
            $oidx = 'top_' . $pos;
        } elseif ($pos == 0) {
            // bottom
            $slidenum = $l['w_bottom'];
            $oidx = 'bottom_' . $pos;
        } else {
            $slidenum = $pos;
            $oidx = $pos;
        }
        $rackobjs .= '<tr>' . K_NEWLINE;
        $rackobjs .= '<td>' . $slidenum . '</td>';
        // object capacity
        $objcap = '';
        // LEFT-FRONT RACK SIDE
        if (isset($rackstack['left_' . $pos . '_front'])) {
            $oidx = 'left_' . $pos . '_front';
            if (isset($rackstack[$oidx]['capacity'])) {
                $objcap = F_getObjectCapacityString($rackstack[$oidx]['capacity']);
            }
            $lrowspan = 1 + $pos - $rackstack[$oidx]['loc_row_bottom'];
            $rackobjs .= '<td style="max-width:20px;" rowspan="' . $lrowspan . '" class="rackobject" id="robj_' . $rackstack[$oidx]['obj_id'] . '"><a class="vtext" href="tce_view_object.php?dcn_id=' . $dcn_id . '&amp;sts_id=' . $sts_id . '&amp;rck_id=' . $rck_id . '&amp;obj_id=' . $rackstack[$oidx]['obj_id'] . '#object" title="' . $l['w_show_details'] . '">' . $rackstack[$oidx]['obj_name'] . ' - ' . $rackstack[$oidx]['obj_label'] . ' - ' . $rackstack[$oidx]['obj_tag'] . $objcap . '</a></td>';
            $nextrow_frontleft = $rackstack[$oidx]['loc_row_bottom'] - 1;
        } elseif ($pos <= $nextrow_frontleft) {
            if ($rck_permission > 1) {
                $rackobjs .= '<td><a href="tce_edit_objects.php?loc_rack_id=' . $rck_id . '&amp;loc_side=left&amp;loc_row_top=' . $pos . '&amp;loc_row_bottom=' . $pos . '" title="' . $l['t_object_editor'] . '">' . $l['w_new'] . '</a></td>' . K_NEWLINE;
            } else {
                $rackobjs .= '<td>&nbsp;</td>' . K_NEWLINE;
            }
        }
        // RIGHT-FRONT RACK SIDE
        if (isset($rackstack['right_' . $pos . '_front'])) {
            $oidx = 'right_' . $pos . '_front';
            if (isset($rackstack[$oidx]['capacity'])) {
                $objcap = F_getObjectCapacityString($rackstack[$oidx]['capacity']);
            }
            $lrowspan = 1 + $pos - $rackstack[$oidx]['loc_row_bottom'];
            $rackobjs .= '<td style="max-width:20px;" rowspan="' . $lrowspan . '" class="rackobject" id="robj_' . $rackstack[$oidx]['obj_id'] . '"><a class="vtext" href="tce_view_object.php?dcn_id=' . $dcn_id . '&amp;sts_id=' . $sts_id . '&amp;rck_id=' . $rck_id . '&amp;obj_id=' . $rackstack[$oidx]['obj_id'] . '#object" title="' . $l['w_show_details'] . '">' . $rackstack[$oidx]['obj_name'] . ' - ' . $rackstack[$oidx]['obj_label'] . ' - ' . $rackstack[$oidx]['obj_tag'] . $objcap . '</a></td>';
            $nextrow_frontright = $rackstack[$oidx]['loc_row_bottom'] - 1;
        } elseif ($pos <= $nextrow_frontright) {
            if ($rck_permission > 1) {
                $rackobjs .= '<td><a href="tce_edit_objects.php?loc_rack_id=' . $rck_id . '&amp;loc_side=right&amp;loc_row_top=' . $pos . '&amp;loc_row_bottom=' . $pos . '" title="' . $l['t_object_editor'] . '">' . $l['w_new'] . '</a></td>' . K_NEWLINE;
            } else {
                $rackobjs .= '<td>&nbsp;</td>' . K_NEWLINE;
            }
        }
        // possible positions for single object on a rack row are:
        // 000 invalid
        // 001 1
        // 010 2
        // 011 3
        // 100 4
        // 101 invalid
        // 110 6
        // 111 7
        $rowpos = array(7, 6, 4, 3, 2, 1);
        $tmpfront = false;
        $tmpcenter = false;
        $tmprear = false;
        // for each possible position combinations
        foreach ($rowpos as $rp) {
            $oidxr = $oidx . '_' . $rp;
            if (isset($rackstack[$oidxr])) {
                if (isset($rackstack[$oidxr]['capacity'])) {
                    $objcap = F_getObjectCapacityString($rackstack[$oidxr]['capacity']);
                }
                // print object
                $rowspan = 1 + $pos - $rackstack[$oidxr]['loc_row_bottom'];
                // calculate object width (1, 2 or 3)
                $obj_cols = intval($rackstack[$oidxr]['loc_front']) + intval($rackstack[$oidxr]['loc_center']) + intval($rackstack[$oidxr]['loc_rear']);
                // print object
                $obj_cell = '<td rowspan="' . $rowspan . '" colspan="' . $obj_cols . '" class="rackobject" id="robj_' . $rackstack[$oidxr]['obj_id'] . '"><a href="tce_view_object.php?dcn_id=' . $dcn_id . '&amp;sts_id=' . $sts_id . '&amp;rck_id=' . $rck_id . '&amp;obj_id=' . $rackstack[$oidxr]['obj_id'] . '#object" title="' . $l['w_show_details'] . '">' . $rackstack[$oidxr]['obj_name'] . ' - ' . $rackstack[$oidxr]['obj_label'] . ' - ' . $rackstack[$oidxr]['obj_tag'] . $objcap . '</a></td>';
                $nextrow = $rackstack[$oidxr]['loc_row_bottom'] - 1;
                if ($rackstack[$oidxr]['loc_front']) {
                    $tmpfront = true;
                    $nextrow_front = $nextrow;
                }
                if ($rackstack[$oidxr]['loc_center']) {
                    $tmpcenter = true;
                    $nextrow_center = $nextrow;
                }
                if ($rackstack[$oidxr]['loc_rear']) {
                    $tmprear = true;
                    $nextrow_rear = $nextrow;
                }
                $empty_cols = 0;
                if ($rp < 4) {
                    if (!$tmpfront) {
                        if ($pos <= $nextrow_front) {
                            ++$empty_cols;
                        }
                    }
                    if ($rp < 2) {
                        if (!$tmpcenter) {
                            if ($pos <= $nextrow_center) {
                                ++$empty_cols;
                            }
                        }
                    }
                }
                // check for empty slots before this
                if ($empty_cols > 0) {
                    if ($rp != 1 or $empty_cols != 1) {
                        if ($rck_permission > 1) {
                            $rackobjs .= '<td colspan="' . $empty_cols . '"><a href="tce_edit_objects.php?loc_rack_id=' . $rck_id . '&amp;loc_row_top=' . $pos . '&amp;loc_row_bottom=' . $pos . '" title="' . $l['t_object_editor'] . '">' . $l['w_new'] . '</a></td>' . K_NEWLINE;
                        } else {
                            $rackobjs .= '<td colspan="' . $empty_cols . '">&nbsp;</td>' . K_NEWLINE;
                        }
                        // count free slots
                        if ($pos > 0 and $pos <= $rack_data['rck_height']) {
                            $freeslots[$empty_cols . 'L'] += 1;
                        }
                    } else {
                        // you cannot add an object in the middle
                        $rackobjs .= '<td colspan="' . $empty_cols . '" style="background-color:#aaaaaa;">&nbsp;</td>' . K_NEWLINE;
                    }
                }
                // print object
                $rackobjs .= $obj_cell;
            }
        }
        // end for each position
        // print last empty rows
        $empty_cols = 0;
        if (!$tmprear) {
            if ($pos <= $nextrow_rear) {
                ++$empty_cols;
            }
            if (!$tmpcenter) {
                if ($pos <= $nextrow_center) {
                    ++$empty_cols;
                }
                if (!$tmpfront) {
                    if ($pos <= $nextrow_front) {
                        ++$empty_cols;
                    }
                }
            }
        }
        if ($empty_cols > 0) {
            if ($rck_permission > 1) {
                $rackobjs .= '<td colspan="' . $empty_cols . '"><a href="tce_edit_objects.php?loc_rack_id=' . $rck_id . '&amp;loc_row_top=' . $pos . '&amp;loc_row_bottom=' . $pos . '" title="' . $l['t_object_editor'] . '">' . $l['w_new'] . '</a></td>' . K_NEWLINE;
            } else {
                $rackobjs .= '<td colspan="' . $empty_cols . '">&nbsp;</td>' . K_NEWLINE;
            }
            // count free slots
            if ($pos > 0 and $pos <= $rack_data['rck_height']) {
                $freeslots[$empty_cols . 'L'] += 1;
            }
        }
        // LEFT-REAR RACK SIDE
        if (isset($rackstack['left_' . $pos . '_rear'])) {
            $oidx = 'left_' . $pos . '_rear';
            if (isset($rackstack[$oidx]['capacity'])) {
                $objcap = F_getObjectCapacityString($rackstack[$oidx]['capacity']);
            }
            $lrowspan = 1 + $pos - $rackstack[$oidx]['loc_row_bottom'];
            $rackobjs .= '<td style="max-width:20px;" rowspan="' . $lrowspan . '" class="rackobject" id="robj_' . $rackstack[$oidx]['obj_id'] . '"><a class="vtext" href="tce_view_object.php?dcn_id=' . $dcn_id . '&amp;sts_id=' . $sts_id . '&amp;rck_id=' . $rck_id . '&amp;obj_id=' . $rackstack[$oidx]['obj_id'] . '#object" title="' . $l['w_show_details'] . '">' . $rackstack[$oidx]['obj_name'] . ' - ' . $rackstack[$oidx]['obj_label'] . ' - ' . $rackstack[$oidx]['obj_tag'] . $objcap . '</a></td>';
            $nextrow_rearleft = $rackstack[$oidx]['loc_row_bottom'] - 1;
        } elseif ($pos <= $nextrow_rearleft) {
            if ($rck_permission > 1) {
                $rackobjs .= '<td><a href="tce_edit_objects.php?loc_rack_id=' . $rck_id . '&amp;loc_side=left&amp;loc_row_top=' . $pos . '&amp;loc_row_bottom=' . $pos . '" title="' . $l['t_object_editor'] . '">' . $l['w_new'] . '</a></td>' . K_NEWLINE;
            } else {
                $rackobjs .= '<td>&nbsp;</td>' . K_NEWLINE;
            }
        }
        // RIGHT-REAR RACK SIDE
        if (isset($rackstack['right_' . $pos . '_rear'])) {
            $oidx = 'right_' . $pos . '_rear';
            if (isset($rackstack[$oidx]['capacity'])) {
                $objcap = F_getObjectCapacityString($rackstack[$oidx]['capacity']);
            }
            $lrowspan = 1 + $pos - $rackstack[$oidx]['loc_row_bottom'];
            $rackobjs .= '<td style="max-width:20px;" rowspan="' . $lrowspan . '" class="rackobject" id="robj_' . $rackstack[$oidx]['obj_id'] . '"><a class="vtext" href="tce_view_object.php?dcn_id=' . $dcn_id . '&amp;sts_id=' . $sts_id . '&amp;rck_id=' . $rck_id . '&amp;obj_id=' . $rackstack[$oidx]['obj_id'] . '#object" title="' . $l['w_show_details'] . '">' . $rackstack[$oidx]['obj_name'] . ' - ' . $rackstack[$oidx]['obj_label'] . ' - ' . $rackstack[$oidx]['obj_tag'] . $objcap . '</a></td>';
            $nextrow_rearright = $rackstack[$oidx]['loc_row_bottom'] - 1;
        } elseif ($pos <= $nextrow_rearright) {
            if ($rck_permission > 1) {
                $rackobjs .= '<td><a href="tce_edit_objects.php?loc_rack_id=' . $rck_id . '&amp;loc_side=right&amp;loc_row_top=' . $pos . '&amp;loc_row_bottom=' . $pos . '" title="' . $l['t_object_editor'] . '">' . $l['w_new'] . '</a></td>' . K_NEWLINE;
            } else {
                $rackobjs .= '<td>&nbsp;</td>' . K_NEWLINE;
            }
        }
        $rackobjs .= '</tr>' . K_NEWLINE;
    }
    // store rack stack
    $rack_data['rackstack'] = $rackstack;
    // store free slots info
    $rack_data['free_slots'] = $freeslots;
    $rackobjs .= '<tr><td colspan="8" style="background-color:#ffffcc;color:#000000;text-align:right;">' . $l['t_free_1u_slots'] . ': 3L=' . $rack_data['free_slots']['3L'] . ', 2L=' . $rack_data['free_slots']['2L'] . ', 1L=' . $rack_data['free_slots']['1L'] . '</td></tr>' . K_NEWLINE;
    $rackobjs .= '</table>' . K_NEWLINE;
    return $rackobjs;
}
/**
 * Return the user permission for the selected record.
 * @param $user_id (int) User ID.
 * @param $table (string) Database table name.
 * @param $record_id (int) Table record ID.
 * @return (int) Permission value (bits: 1=read, 2=add, 3=update, 4=delete, 5=IPMI, 6=SSH).
 */
function F_getUserPermission($user_id, $table, $record_id)
{
    global $l, $db;
    require_once '../config/tce_config.php';
    $permission = 0;
    // check table name
    switch ($table) {
        case K_TABLE_OBJECT_GROUPS:
            $record_column = 'obg_obj_id';
            $group_column = 'obg_group_id';
            $permission_column = 'obg_permission';
            break;
        case K_TABLE_RACK_GROUPS:
            $record_column = 'rkg_rck_id';
            $group_column = 'rkg_group_id';
            $permission_column = 'rkg_permission';
            break;
        case K_TABLE_SUITE_GROUPS:
            $record_column = 'stg_sts_id';
            $group_column = 'stg_group_id';
            $permission_column = 'stg_permission';
            break;
        case K_TABLE_DATACENTER_GROUPS:
            $record_column = 'dcg_dcn_id';
            $group_column = 'dcg_group_id';
            $permission_column = 'dcg_permission';
            break;
        default:
            return 0;
    }
    // check if user is an administrator
    $sql = 'SELECT user_level FROM ' . K_TABLE_USERS . ' WHERE user_id=' . $user_id . ' LIMIT 1';
    if ($r = F_db_query($sql, $db)) {
        if ($m = F_db_fetch_array($r)) {
            if ($m['user_level'] >= K_AUTH_ADMINISTRATOR) {
                // return maximum permission value (including reserved bits)
                return 255;
            }
        }
    } else {
        F_display_db_error();
    }
    // get user permissions
    $sql = 'SELECT ' . $permission_column . '
		FROM ' . K_TABLE_USERGROUP . ', ' . K_TABLE_GROUPS . ', ' . $table . '
		WHERE usrgrp_user_id=' . $user_id . ' AND group_id=usrgrp_group_id AND ' . $group_column . '=group_id AND ' . $record_column . '=' . $record_id . '';
    if ($r = F_db_query($sql, $db)) {
        while ($m = F_db_fetch_array($r)) {
            $permission |= $m[$permission_column];
        }
    } else {
        F_display_db_error();
    }
    // get parent object permissions
    if ($table == K_TABLE_OBJECTS_MAP) {
        $sql = 'SELECT omp_parent_obj_id FROM ' . K_TABLE_OBJECTS_MAP . ' WHERE omp_child_obj_id=' . $record_id . '';
        if ($r = F_db_query($sql, $db)) {
            while ($m = F_db_fetch_array($r)) {
                $permission |= F_getUserPermission($user_id, K_TABLE_OBJECTS_MAP, $m['omp_parent_obj_id']);
            }
        } else {
            F_display_db_error();
        }
    }
    return $permission;
}
Ejemplo n.º 6
0
if (isset($data['dcn_name'])) {
    echo '<form action="' . $_SERVER['SCRIPT_NAME'] . '" method="post" enctype="multipart/form-data" id="form_editor">' . K_NEWLINE;
    echo '<div class="row" style="margin-bottom:10px;"><hr /></div>' . K_NEWLINE;
    echo getFormDescriptionLine($l['w_name'], $l['h_datacenter_name'], '<strong>' . htmlspecialchars($data['dcn_name'], ENT_COMPAT, $l['a_meta_charset']) . '</strong>');
    echo getFormDescriptionLine($l['w_website'], $l['h_website_url'], '<a href="' . htmlspecialchars($data['dcn_website_url'], ENT_COMPAT, $l['a_meta_charset']) . '" onclick="pdfWindow=window.open(\'' . htmlspecialchars($data['dcn_website_url'], ENT_COMPAT, $l['a_meta_charset']) . '\',\'pdfWindow\',\'dependent,menubar=yes,resizable=yes,scrollbars=yes,status=yes,toolbar=yes\'); return false;" title="' . htmlspecialchars($data['dcn_name'], ENT_COMPAT, $l['a_meta_charset']) . '">' . htmlspecialchars($data['dcn_website_url'], ENT_COMPAT, $l['a_meta_charset']) . '</a>');
    echo getFormDescriptionLine($l['w_map'], $l['w_map'], '<a href="' . htmlspecialchars($data['dcn_map_url'], ENT_COMPAT, $l['a_meta_charset']) . '"onclick="pdfWindow=window.open(\'' . htmlspecialchars($data['dcn_map_url'], ENT_COMPAT, $l['a_meta_charset']) . '\',\'pdfWindow\',\'dependent,menubar=yes,resizable=yes,scrollbars=yes,status=yes,toolbar=yes\'); return false;" title="' . htmlspecialchars($l['w_map'], ENT_COMPAT, $l['a_meta_charset']) . '">' . htmlspecialchars($data['dcn_map_url'], ENT_COMPAT, $l['a_meta_charset']) . '</a>');
    echo getFormDescriptionLine($l['w_description'], $l['h_datacenter_description'], str_replace("\n", '<br />', htmlspecialchars($data['dcn_description'], ENT_COMPAT, $l['a_meta_charset'])));
    // list of suites
    echo '<div class="row">' . K_NEWLINE;
    echo '<span class="label">' . $l['w_suites'] . '</span>' . K_NEWLINE;
    echo '<br /><div class="value">' . K_NEWLINE;
    $sql = 'SELECT * FROM ' . K_TABLE_SUITES . ' WHERE sts_dcn_id=' . $dcn_id . ' ORDER BY sts_name ASC';
    if ($r = F_db_query($sql, $db)) {
        echo '<ul>' . K_NEWLINE;
        while ($m = F_db_fetch_array($r)) {
            $sts_permission = F_getUserPermission($user_id, K_TABLE_SUITE_GROUPS, $m['sts_id']);
            if ($sts_permission > 0) {
                echo '<li><a href="tce_view_suite.php?dcn_id=' . $dcn_id . '&amp;sts_id=' . $m['sts_id'] . '" title="' . $l['w_view'] . ': ' . $m['sts_name'] . '">' . htmlspecialchars($m['sts_name'], ENT_NOQUOTES, $l['a_meta_charset']) . '</a></li>' . K_NEWLINE;
            }
        }
        echo '</ul>' . K_NEWLINE;
    } else {
        F_display_db_error();
    }
    echo '</div>' . K_NEWLINE;
    echo '</div>' . K_NEWLINE;
    echo '<div class="row">' . K_NEWLINE;
    echo '&nbsp;' . K_NEWLINE;
    // comma separated list of required fields
    echo '<input type="hidden" name="ff_required" id="ff_required" value="" />' . K_NEWLINE;
    echo '<input type="hidden" name="ff_required_labels" id="ff_required_labels" value="" />' . K_NEWLINE;
Ejemplo n.º 7
0
$userlevel = intval($_SESSION['session_user_level']);
$user_groups = F_getUserGroups($user_id);
$dcn_perm = 0;
$user_permissions = 0;
// selected or default datacenter and suite
if (isset($_REQUEST['dcn_id'])) {
    $dcn_id = intval($_REQUEST['dcn_id']);
    $dcn_perm = F_getUserPermission($user_id, K_TABLE_DATACENTER_GROUPS, $dcn_id);
    if ($dcn_perm == 0) {
        F_print_error('ERROR', $l['m_not_authorized_to_edit']);
        $dcn_id = 0;
        $sts_id = 0;
    } else {
        if (isset($_REQUEST['sts_id']) and (!isset($_REQUEST['change_datacenter']) or empty($_REQUEST['change_datacenter']))) {
            $sts_id = intval($_REQUEST['sts_id']);
            $user_permissions = F_getUserPermission($user_id, K_TABLE_SUITE_GROUPS, $sts_id);
            if ($user_permissions == 0) {
                F_print_error('ERROR', $l['m_not_authorized_to_edit']);
                $sts_id = 0;
            }
        } else {
            $sts_id = 0;
        }
    }
} else {
    $dcn_id = 0;
    $sts_id = 0;
}
if ($dcn_id == 0 and isset($_REQUEST['sts_id']) and $_REQUEST['sts_id'] > 0) {
    $sts_id = intval($_REQUEST['sts_id']);
    $sql = 'SELECT sts_dcn_id FROM ' . K_TABLE_SUITES . ' WHERE sts_id=' . $sts_id . ' LIMIT 1';
Ejemplo n.º 8
0
require_once '../config/tce_config.php';
$pagelevel = K_AUTH_ADMIN_DATACENTERS;
require_once '../../shared/code/tce_authorization.php';
$thispage_title = $l['t_datacenter_editor'];
require_once '../code/tce_page_header.php';
require_once '../../shared/code/tce_functions_form.php';
require_once 'tce_functions_objects.php';
require_once 'tce_functions_group_permissions.php';
$user_id = intval($_SESSION['session_user_id']);
//$userip = $_SESSION['session_user_ip'];
$userlevel = intval($_SESSION['session_user_level']);
$user_groups = F_getUserGroups($user_id);
$user_permissions = 0;
if (isset($_REQUEST['dcn_id'])) {
    $dcn_id = intval($_REQUEST['dcn_id']);
    $user_permissions = F_getUserPermission($user_id, K_TABLE_DATACENTER_GROUPS, $dcn_id);
    if ($user_permissions == 0) {
        F_print_error('ERROR', $l['m_not_authorized_to_edit']);
        $dcn_id = 0;
    }
} else {
    $dcn_id = 0;
}
if (isset($_REQUEST['dcn_name'])) {
    $dcn_name = $_REQUEST['dcn_name'];
} else {
    $dcn_name = '';
}
if (isset($_REQUEST['dcn_description'])) {
    $dcn_description = $_REQUEST['dcn_description'];
} else {
Ejemplo n.º 9
0
             }
             $prev_sts_id = $m['sts_id'];
         }
         // rack data
         if ($m['rck_id'] != $prev_rck_id) {
             $rck_perm = F_getUserPermission($user_id, K_TABLE_RACK_GROUPS, $m['rck_id']);
             if (($dcn_perm & 1) > 0 and ($sts_perm & 1) > 0 and ($rck_perm & 1) > 0) {
                 $rck_value = $m;
                 $data['asset']['datacenter']['DCN' . $m['dcn_id']]['suite']['STS' . $m['sts_id']]['rack']['RCK' . $m['rck_id']] = array('rck_id' => $m['rck_id'], 'rck_sts_id' => $m['rck_sts_id'], 'rck_name' => $m['rck_name'], 'rck_description' => $m['rck_description'], 'rck_label' => $m['rck_label'], 'rck_tag' => $m['rck_tag'], 'rck_height' => $m['rck_height'], 'rck_position_x' => $m['rck_position_x'], 'rck_position_y' => $m['rck_position_y'], 'rck_table' => getRackStack($m['dcn_id'], $m['sts_id'], $m['rck_id'], $rck_value), 'rck_rackstack' => $rck_value['rackstack'], 'rck_free_slots' => $rck_value['free_slots'], 'object' => array());
                 if ($userlevel >= K_AUTH_ADMINISTRATOR) {
                     $data['asset']['datacenter']['DCN' . $m['dcn_id']]['suite']['STS' . $m['sts_id']]['rack']['RCK' . $m['rck_id']]['rck_permissions'] = F_getGroupsPermsDesc(F_getGroupsPermissions(K_TABLE_RACK_GROUPS, $m['rck_id']));
                 }
             }
             $prev_rck_id = $m['rck_id'];
         }
         $obj_perm = F_getUserPermission($user_id, K_TABLE_OBJECT_GROUPS, $m['obj_id']);
         if (($obj_perm & 1) > 0) {
             // object data
             $objdata = F_get_object_data_array($m['obj_id'], $ilo, $capacity);
             if (isset($capacity) and !empty($capacity)) {
                 $objdata['capacity'] = $capacity;
             }
             // get all groups IDs
             $perm_groups = array_merge($perm_groups, array_keys($objdata['permissions']));
             if ($userlevel >= K_AUTH_ADMINISTRATOR) {
                 $objdata['permissions'] = F_getGroupsPermsDesc($objdata['permissions']);
             }
             $data['asset']['datacenter']['DCN' . $m['dcn_id']]['suite']['STS' . $m['sts_id']]['rack']['RCK' . $m['rck_id']]['object']['OBJ' . $m['obj_id']] = $objdata;
         }
     }
 } else {
Ejemplo n.º 10
0
     }
     break;
 case 'add':
 case 'clone':
     // Add
     $old_obj_id = $obj_id;
     if ($formstatus = F_check_form_fields()) {
         // check submitted form fields
         // check permission
         if ($userlevel < K_AUTH_ADMINISTRATOR) {
             // check permission
             if (!empty($omp_parent_obj_ids)) {
                 $parentperm = 0;
                 foreach ($omp_parent_obj_ids as $parent_obj_id) {
                     //DEBUG
                     $parentperm |= F_getUserPermission($user_id, K_TABLE_OBJECT_GROUPS, $obj_id);
                 }
                 if (($parentperm & 2) == 0) {
                     F_print_error('ERROR', $l['m_not_authorized_to_edit']);
                     F_stripslashes_formfields();
                     break;
                 } else {
                     $perms = $parentperm;
                 }
             }
         }
         // check if name is unique
         /*
         if (!F_check_unique(K_TABLE_OBJECTS, 'obj_name=\''.F_escape_sql($obj_name).'\' AND obj_obt_id='.$obj_obt_id.'')) {
         	F_print_error('WARNING', $l['m_duplicate_name']);
         	$formstatus = FALSE; F_stripslashes_formfields();