Esempio n. 1
0
function view_se()
{
    require_once __DIR__ . '/../utils.php';
    require_once __DIR__ . '/../../../web_portal/components/Get_User_Principle.php';
    if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
        throw new Exception("An id must be specified");
    }
    $id = $_GET['id'];
    //get user for case that portal is read only and user is admin, so they can still see edit links
    $dn = Get_User_Principle();
    $user = \Factory::getUserService()->getUserByPrinciple($dn);
    $serv = \Factory::getServiceService();
    $params['authenticated'] = false;
    if ($user != null) {
        $params['authenticated'] = true;
    }
    $params['portalIsReadOnly'] = portalIsReadOnlyAndUserIsNotAdmin($user);
    $se = $serv->getService($id);
    // Does current viewer have edit permissions over object ?
    $params['ShowEdit'] = false;
    if ($user != null && count($serv->authorizeAction(\Action::EDIT_OBJECT, $se, $user)) >= 1) {
        $params['ShowEdit'] = true;
    }
    $title = $se->getHostName() . " - " . $se->getServiceType()->getName();
    $params['se'] = $se;
    $params['sGroups'] = $se->getServiceGroups();
    $params['Scopes'] = $serv->getScopesWithParentScopeInfo($se);
    // Show upcoming downtimes and downtimes that started within the last thirty days
    $downtimes = $serv->getDowntimes($id, 31);
    $params['Downtimes'] = $downtimes;
    show_view("service/view_service.php", $params, $title);
}
Esempio n. 2
0
function delete_project()
{
    if (true) {
        throw new Exception("Project deletion is disabled - see controller to enable");
    }
    if (!isset($_REQUEST['id']) || !is_numeric($_REQUEST['id'])) {
        throw new Exception("An id must be specified");
    }
    $dn = Get_User_Principle();
    $user = \Factory::getUserService()->getUserByPrinciple($dn);
    //Check the portal is not in read only mode, returns exception if it is and user is not an admin
    checkPortalIsNotReadOnlyOrUserIsAdmin($user);
    //Get the project from the id
    $serv = \Factory::getProjectService();
    $project = $serv->getProject($_REQUEST['id']);
    //keep the name to display later
    $params['Name'] = $project->getName();
    // Delete the project. This fuction will check the user is allowed to
    // perform this action and throw an error if not (only gocdb admins allowed).
    // Project deletion does not delete child NGIs and automatically cascade
    // deletes the user Roles over the OwnedEntity.
    try {
        $serv->deleteProject($project, $user);
    } catch (\Exception $e) {
        show_view('error.php', $e->getMessage());
        die;
    }
    show_view("project/deleted_project.php", $params, $params['Name'] . 'deleted');
}
Esempio n. 3
0
function showAllServiceGroups()
{
    require_once __DIR__ . '/../../../../lib/Gocdb_Services/Factory.php';
    $scope = '%%';
    if (!empty($_GET['scope'])) {
        $scope = $_GET['scope'];
    }
    $scopes = \Factory::getScopeService()->getScopes();
    $sgKeyNames = "";
    if (isset($_GET['sgKeyNames'])) {
        $sgKeyNames = $_GET['sgKeyNames'];
    }
    $sgKeyValues = "";
    if (isset($_GET['selectedSGKeyValue'])) {
        $sgKeyValues = $_GET['selectedSGKeyValue'];
    }
    $sGroups = \Factory::getServiceGroupService()->getServiceGroups($scope, $sgKeyNames, $sgKeyValues);
    $exServ = \Factory::getExtensionsService();
    /* Doctrine will provide keynames that are the same even when selecting distinct becase the object
     * is distinct even though the name is not unique. To avoid showing the same name repeatdly in the filter
     * we will load all the keynames into an array before making it unique
     */
    $keynames = array();
    foreach ($exServ->getServiceGroupExtensionsKeyNames() as $extension) {
        $keynames[] = $extension->getKeyName();
    }
    $keynames = array_unique($keynames);
    $params['sGroups'] = $sGroups;
    $params['scopes'] = $scopes;
    $params['selectedScope'] = $scope;
    $params['selectedSGKeyName'] = $sgKeyNames;
    $params['selectedSGKeyValue'] = $sgKeyValues;
    $params['sgKeyName'] = $keynames;
    show_view("service_group/view_all.php", $params);
}
Esempio n. 4
0
function submit()
{
    //Only administrators can delete sites, double check user is an administrator
    checkUserIsAdmin();
    if (!isset($_REQUEST['id']) || !is_numeric($_REQUEST['id'])) {
        throw new Exception("An id must be specified");
    }
    if (isset($_REQUEST['id'])) {
        $ngi = \Factory::getNgiService()->getNgi($_REQUEST['id']);
    } else {
        throw new \Exception("A NGI must be specified in the url");
    }
    //save name to display later
    $params['Name'] = $ngi->getName();
    $dn = Get_User_Principle();
    $user = \Factory::getUserService()->getUserByPrinciple($dn);
    //remove ngi
    try {
        \Factory::getNgiService()->deleteNgi($ngi, $user);
    } catch (\Exception $e) {
        show_view('error.php', $e->getMessage());
        die;
    }
    show_view('/site/deleted_site.php', $params);
}
Esempio n. 5
0
function search_ses()
{
    if (!isset($_REQUEST['term'])) {
        return "";
    } else {
        $searchTerm = strip_tags(trim($_REQUEST['term']));
    }
    if (1 === preg_match("/[';\"]/", $searchTerm)) {
        throw new Exception("Invalid char in search term");
    }
    if (substr($searchTerm, 0, 1) != '%') {
        $searchTerm = '%' . $searchTerm;
    }
    if (substr($searchTerm, -1) != '%') {
        $searchTerm = $searchTerm . '%';
    }
    require_once __DIR__ . '/../../../../lib/Gocdb_Services/Factory.php';
    try {
        $ses = \Factory::getServiceService()->getSes($searchTerm, null, null, null, null, null, null, null, null, null, null, null, true);
    } catch (Exception $ex) {
        show_view('error.php', $ex->getMessage() . "<br /><br />Please contact the " . "<a href=\"index.php?Page_Type=Static_HTML&Page=Help_And_Contact\">" . "GOCDB support team</a> if you need help with this issue.");
    }
    $params = array('ses' => $ses);
    show_view('service_group/se_search.php', $params, null, true);
}
Esempio n. 6
0
function view_revoke_request()
{
    require_once __DIR__ . '/../../../../lib/Gocdb_Services/Factory.php';
    require_once __DIR__ . '/../../components/Get_User_Principle.php';
    require_once __DIR__ . '/../utils.php';
    $dn = Get_User_Principle();
    $user = \Factory::getUserService()->getUserByPrinciple($dn);
    if ($user == null) {
        throw new Exception("Unregistered users can't revoke roles");
    }
    //Check the portal is not in read only mode, returns exception if it is and user is not an admin
    checkPortalIsNotReadOnlyOrUserIsAdmin($user);
    $requestId = $_POST['id'];
    if (!isset($requestId) || !is_numeric($requestId)) {
        throw new LogicException("Invalid role id");
    }
    // Either a self revocation or revoke is requested by 2nd party
    // check to see that user has permission to revoke role
    $role = \Factory::getRoleService()->getRoleById($requestId);
    \Factory::getRoleService()->revokeRole($role, $user);
    if ($role->getUser() != $user) {
        // revoke by 2nd party
        show_view('political_role/role_revoked.php');
    } else {
        // Self revocation
        show_view('political_role/role_self_revoked.php');
    }
    die;
}
Esempio n. 7
0
function show_all_projects()
{
    require_once __DIR__ . '/../../../../lib/Gocdb_Services/Factory.php';
    $projects = \Factory::getProjectService()->getProjects();
    $params['Projects'] = $projects;
    show_view('project/view_all.php', $params, "Projects");
}
Esempio n. 8
0
function my_sites()
{
    require_once __DIR__ . '/../../../lib/Gocdb_Services/Factory.php';
    require_once __DIR__ . '/../components/Get_User_Principle.php';
    $params = array();
    $userServ = \Factory::getUserService();
    $dn = Get_User_Principle();
    $user = \Factory::getUserService()->getUserByPrinciple($dn);
    if (is_null($user)) {
        show_view('error.php', "Unregistered users can't hold a role over sites, NGIs or service groups.");
        die;
    }
    $sites = $userServ->getSitesFromRoles($user);
    if (!empty($sites)) {
        $params['sites_from_roles'] = $sites;
    }
    $sGroups = $userServ->getSGroupsFromRoles($user);
    if (!empty($sGroups)) {
        $params['sgroups_from_roles'] = $sGroups;
    }
    $ngis = $userServ->getNgisFromRoles($user);
    if (!empty($ngis)) {
        $params['ngis_from_roles'] = $ngis;
    }
    $projects = $userServ->getProjectsFromRoles($user);
    if (!empty($projects)) {
        $params['projects_from_roles'] = $projects;
    }
    $title = "My Sites and Groups";
    show_view('my_sites.php', $params, $title);
}
Esempio n. 9
0
/**
 * Processes an edit service request from a web request
 * @param \User $user current user
 * @return null
 */
function submit(\User $user = null)
{
    $serv = \Factory::getNgiService();
    $newValues = getNgiDataFromWeb();
    $ngi = $serv->getNgi($newValues['ID']);
    $ngi = $serv->editNgi($ngi, $newValues, $user);
    $params = array('ngi' => $ngi);
    show_view('ngi/ngi_updated.php', $params);
}
Esempio n. 10
0
function show_xml()
{
    try {
        $xml = Factory::getSiteService()->getGoogleMapXMLString();
    } catch (Exception $e) {
        show_view('error.php', $e->getMessage(), "Error");
    }
    $params['XML'] = $xml;
    show_view('sitesForGoogleMapXML.php', $params, null, true);
}
Esempio n. 11
0
function show_all()
{
    //Check the user has permission to see the page, will throw exception
    //if correct permissions are lacking
    checkUserIsAdmin();
    $dn = Get_User_Principle();
    $user = \Factory::getUserService()->getUserByPrinciple($dn);
    $serviceTypes = \Factory::getServiceTypeService()->getServiceTypes();
    $params['ServiceTypes'] = $serviceTypes;
    $params['portalIsReadOnly'] = portalIsReadOnlyAndUserIsNotAdmin($user);
    show_view('admin/view_service_types.php', $params, 'Service Types');
}
Esempio n. 12
0
/**
 *  Draws a form to add a new site property
 * @param \User $user current user 
 * @return null
 */
function draw(\User $user = null)
{
    if (is_null($user)) {
        throw new Exception("Unregistered users can't add a site property.");
    }
    $serv = \Factory::getSiteService();
    $site = $serv->getSite($_REQUEST['site']);
    //Check user has permissions to add site property
    $serv->validatePropertyActions($user, $site);
    $params = array('site' => $site);
    show_view("site/add_site_property.php", $params);
}
Esempio n. 13
0
function view_ngi()
{
    require_once __DIR__ . '/../../../../lib/Gocdb_Services/Factory.php';
    require_once __DIR__ . '/../utils.php';
    require_once __DIR__ . '/../../../web_portal/components/Get_User_Principle.php';
    if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
        throw new Exception("An id must be specified");
    }
    $ngiId = $_GET['id'];
    //get user for case that portal is read only and user is admin, so they can still see edit links
    $dn = Get_User_Principle();
    $user = \Factory::getUserService()->getUserByPrinciple($dn);
    $params['portalIsReadOnly'] = portalIsReadOnlyAndUserIsNotAdmin($user);
    $params['UserIsAdmin'] = false;
    if (!is_null($user)) {
        $params['UserIsAdmin'] = $user->isAdmin();
    }
    $params['authenticated'] = false;
    if ($user != null) {
        $params['authenticated'] = true;
    }
    $ngiServ = \Factory::getNgiService();
    $siteServ = \Factory::getSiteService();
    $ngi = $ngiServ->getNgi($ngiId);
    // Does current viewer have edit permissions over NGI ?
    $params['ShowEdit'] = false;
    if (count($ngiServ->authorizeAction(\Action::EDIT_OBJECT, $ngi, $user)) >= 1) {
        $params['ShowEdit'] = true;
    }
    // Add ngi to params
    $params['ngi'] = $ngi;
    // Add all roles over ngi to params
    $allRoles = $ngi->getRoles();
    $roles = array();
    foreach ($allRoles as $role) {
        if ($role->getStatus() == \RoleStatus::GRANTED) {
            $roles[] = $role;
        }
    }
    $params['roles'] = $roles;
    // Add ngi's project to params
    $projects = $ngi->getProjects();
    $params['Projects'] = $projects;
    // Add sites and scopes to params
    $params['SitesAndScopes'] = array();
    foreach ($ngi->getSites() as $site) {
        $params['SitesAndScopes'][] = array('Site' => $site, 'Scopes' => $siteServ->getScopesWithParentScopeInfo($site));
    }
    // Add RoleActionRecords to params
    $params['RoleActionRecords'] = \Factory::getRoleService()->getRoleActionRecordsById_Type($ngi->getId(), 'ngi');
    show_view('ngi/view_ngi.php', $params, $ngi->getName());
    die;
}
Esempio n. 14
0
function site_downtimes()
{
    require_once __DIR__ . '/../../../../lib/Gocdb_Services/Factory.php';
    $serv = \Factory::getSiteService();
    $site = $serv->getSite($_REQUEST['id']);
    $downtimes = $serv->getDowntimes($_REQUEST['id'], null);
    $params['site'] = $site;
    $params['downtimes'] = $downtimes;
    $title = "{$site} downtimes";
    show_view('site/site_downtimes.php', $params, $title);
    return;
}
Esempio n. 15
0
function view_user()
{
    require_once __DIR__ . '/../../../../lib/Gocdb_Services/Factory.php';
    require_once __DIR__ . '/../../components/Get_User_Principle.php';
    if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
        throw new Exception("An id must be specified");
    }
    $userId = $_GET['id'];
    $user = \Factory::getUserService()->getUser($userId);
    if ($user === null) {
        throw new Exception("No user with that ID");
    }
    $params['user'] = $user;
    // get the targetUser's roles
    $roles = \Factory::getRoleService()->getUserRoles($user, \RoleStatus::GRANTED);
    //$user->getRoles();
    $callingUser = \Factory::getUserService()->getUserByPrinciple(Get_User_Principle());
    // can the calling user revoke the targetUser's roles?
    if ($user != $callingUser) {
        foreach ($roles as $r) {
            //$ownedEntityDetail = $r->getOwnedEntity()->getName(). ' ('. $r->getOwnedEntity()->getType().')';
            $authorisingRoleNames = \Factory::getRoleService()->authorizeAction(\Action::REVOKE_ROLE, $r->getOwnedEntity(), $callingUser);
            if (count($authorisingRoleNames) >= 1) {
                $allAuthorisingRoleNames = '';
                foreach ($authorisingRoleNames as $arName) {
                    $allAuthorisingRoleNames .= $arName . ', ';
                }
                $allAuthorisingRoleNames = substr($allAuthorisingRoleNames, 0, strlen($allAuthorisingRoleNames) - 2);
                $r->setDecoratorObject('[' . $allAuthorisingRoleNames . '] ');
            }
        }
    } else {
        // current user is viewing their own roles, so they can revoke their own roles
        foreach ($roles as $r) {
            $r->setDecoratorObject('[Self revoke own role]');
        }
    }
    // Check to see if the current calling user has permission to edit the target user
    try {
        \Factory::getUserService()->editUserAuthorization($user, $callingUser);
        $params['ShowEdit'] = true;
    } catch (Exception $e) {
        $params['ShowEdit'] = false;
    }
    /* @var $authToken \org\gocdb\security\authentication\IAuthentication */
    $authToken = Get_User_AuthToken();
    $params['authAttributes'] = $authToken->getDetails();
    $params['roles'] = $roles;
    $params['portalIsReadOnly'] = \Factory::getConfigService()->IsPortalReadOnly();
    $title = $user->getFullName();
    show_view("user/view_user.php", $params, $title);
}
Esempio n. 16
0
function submit(\EndpointLocation $endpoint, \Service $service, \User $user = null)
{
    $serv = \Factory::getServiceService();
    try {
        $serv->deleteEndpoint($endpoint, $user);
    } catch (\Exception $e) {
        show_view('error.php', $e->getMessage());
        die;
    }
    $params['endpoint'] = $endpoint;
    $params['service'] = $service;
    show_view('/service/deleted_service_endpoint.php', $params);
}
Esempio n. 17
0
function se_downtimes()
{
    if (!isset($_REQUEST['id']) || !is_numeric($_REQUEST['id'])) {
        throw new Exception("An id must be specified");
    }
    $serviceService = \Factory::getServiceService();
    $se = $serviceService->getService($_REQUEST['id']);
    $downtimes = $serviceService->getDowntimes($_REQUEST['id'], null);
    $params['se'] = $se;
    $params['downtimes'] = $downtimes;
    $title = "Downtimes for " . $se->getHostName();
    show_view('service/se_downtimes.php', $params, $title);
    return;
}
Esempio n. 18
0
function view_ngis()
{
    require_once __DIR__ . '/../../../../lib/Gocdb_Services/Factory.php';
    $scope = '%%';
    if (!empty($_GET['scope'])) {
        $scope = $_GET['scope'];
    }
    $scopes = \Factory::getScopeService()->getScopes();
    $ngis = \Factory::getNgiService()->getNGIs($scope);
    $params['ngis'] = $ngis;
    $params['scopes'] = $scopes;
    $params['selectedScope'] = $scope;
    show_view('ngi/view_ngis.php', $params, "NGIs");
}
function deny_delete_type()
{
    //Check the user has permission to see the page, will throw exception
    //if correct permissions are lacking
    checkUserIsAdmin();
    //Get a service type service and then the service type to be deleted
    $serv = \Factory::getServiceTypeService();
    $serviceType = $serv->getServiceType($_REQUEST['id']);
    //Get the services for that service and pass them to the denied view
    $params['ServiceType'] = $serviceType;
    $params['Services'] = $serv->getServices($serviceType->getId());
    //display the deletion denied view
    show_view("admin/delete_service_type_denied.php", $params, 'Deletion Failed');
}
Esempio n. 20
0
function startPage()
{
    require_once __DIR__ . '/../../../lib/Gocdb_Services/Factory.php';
    require_once __DIR__ . '/../components/Get_User_Principle.php';
    $dn = Get_User_Principle();
    $user = \Factory::getUserService()->getUserByPrinciple($dn);
    $roles = \Factory::getRoleService()->getPendingRolesUserCanApprove($user);
    $configServ = \Factory::getConfigService();
    $showMap = $configServ->getShowMapOnStartPage();
    $apiKey = $configServ->getGoogleAPIKey();
    $params = array('roles' => $roles, 'googleAPIKey' => $apiKey, 'showMap' => $showMap);
    $title = "GOCDB";
    show_view('start_page.php', $params, $title, null);
}
Esempio n. 21
0
function submit(\SiteProperty $property, \User $user = null, \Site $site)
{
    $params['prop'] = $property;
    $params['site'] = $site;
    //remove site property
    try {
        $serv = \Factory::getSiteService();
        $serv->deleteSiteProperty($site, $user, $property);
    } catch (\Exception $e) {
        show_view('error.php', $e->getMessage());
        die;
    }
    show_view('/site/deleted_site_property.php', $params);
}
function submit(\ServiceGroupProperty $property, \User $user = null, \ServiceGroup $serviceGroup)
{
    $params['prop'] = $property;
    $params['serviceGroup'] = $serviceGroup;
    //remove service group property
    try {
        $serv = \Factory::getServiceGroupService();
        $serv->deleteServiceGroupProperty($serviceGroup, $user, $property);
    } catch (\Exception $e) {
        show_view('error.php', $e->getMessage());
        die;
    }
    show_view('/service_group/deleted_service_group_property.php', $params);
}
Esempio n. 23
0
function submit(\Site $site, \User $user = null)
{
    //Only administrators can delete sites, double check user is an administrator
    checkUserIsAdmin();
    //save name to display later
    $params['Name'] = $site->getName();
    //remove Site
    try {
        \Factory::getSiteService()->deleteSite($site, $user);
    } catch (\Exception $e) {
        show_view('error.php', $e->getMessage());
        die;
    }
    show_view('/site/deleted_site.php', $params);
}
Esempio n. 24
0
function getSitesServices()
{
    require_once __DIR__ . '/../utils.php';
    require_once __DIR__ . '/../../../web_portal/components/Get_User_Principle.php';
    $dn = Get_User_Principle();
    $user = \Factory::getUserService()->getUserByPrinciple($dn);
    $params['portalIsReadOnly'] = portalIsReadOnlyAndUserIsNotAdmin($user);
    if (!isset($_REQUEST['site_id']) || !is_numeric($_REQUEST['site_id'])) {
        throw new Exception("A site_id must be specified");
    }
    $site = \Factory::getSiteService()->getSite($_REQUEST['site_id']);
    $services = $site->getServices();
    $params['services'] = $services;
    show_view("downtime/view_services.php", $params, null, true);
}
/**
 *  Draws a form to add a new service group property
 * @param \User $user current user 
 * @return null
 */
function draw(\User $user = null)
{
    if (is_null($user)) {
        throw new Exception("Unregistered users can't add a service group property.");
    }
    if (!isset($_REQUEST['serviceGroup']) || !is_numeric($_REQUEST['serviceGroup'])) {
        throw new Exception("An id must be specified");
    }
    $serv = \Factory::getServiceGroupService();
    $serviceGroup = $serv->getServiceGroup($_REQUEST['serviceGroup']);
    //Check user has permissions to add site property
    $serv->validatePropertyActions($user, $serviceGroup);
    $params = array('serviceGroup' => $serviceGroup);
    show_view("service_group/add_service_group_property.php", $params);
}
Esempio n. 26
0
/**
 *  Draws a form to add a new service property
 * @param \User $user current user 
 * @return null
 */
function draw(\User $user = null)
{
    if (is_null($user)) {
        throw new Exception("Unregistered users can't add a service property.");
    }
    if (!isset($_REQUEST['se']) || !is_numeric($_REQUEST['se'])) {
        throw new Exception("An id must be specified");
    }
    $serv = \Factory::getServiceService();
    $service = $serv->getService($_REQUEST['se']);
    //get service by id
    //Check user has permissions to add service property
    $serv->validateAddEditDeleteActions($user, $service);
    $params['serviceid'] = $_REQUEST['se'];
    show_view("service/add_service_property.php", $params);
}
Esempio n. 27
0
function submit(\ServiceProperty $property, \Service $service, \User $user = null)
{
    if (is_null($user)) {
        throw new Exception("Unregistered users can't delete a service property.");
    }
    $params['prop'] = $property;
    $params['service'] = $service;
    //remove site property
    try {
        $serv = \Factory::getServiceService();
        $serv->deleteServiceProperty($service, $user, $property);
    } catch (\Exception $e) {
        show_view('error.php', $e->getMessage());
        die;
    }
    show_view('/service/deleted_service_property.php', $params);
}
Esempio n. 28
0
/**
 * Controller for a delete service request
 * @return null
 */
function delete()
{
    $dn = Get_User_Principle();
    $user = \Factory::getUserService()->getUserByPrinciple($dn);
    if ($user == null) {
        throw new \Exception("Unregistered users can't delete services. ");
    }
    //Check the portal is not in read only mode, returns exception if it is and user is not an admin
    checkPortalIsNotReadOnlyOrUserIsAdmin($user);
    if (!isset($_REQUEST['id']) || !is_numeric($_REQUEST['id'])) {
        throw new Exception("An id must be specified");
    }
    $serv = \Factory::getServiceService();
    $se = $serv->getService($_REQUEST['id']);
    $serv->deleteService($se, $user);
    show_view('service/service_deleted.php');
}
Esempio n. 29
0
function submit()
{
    $oldDn = $_REQUEST['OLDDN'];
    $givenEmail = $_REQUEST['EMAIL'];
    $currentDn = Get_User_Principle();
    if (empty($currentDn)) {
        show_view('error.php', "Could not authenticate user - null user principle");
        die;
    }
    try {
        $changeReq = \Factory::getRetrieveAccountService()->newRetrieveAccountRequest($currentDn, $givenEmail, $oldDn);
    } catch (\Exception $e) {
        show_view('error.php', $e->getMessage());
        die;
    }
    show_view('user/retrieve_account_accepted.php');
}
Esempio n. 30
0
function draw($user)
{
    try {
        //\Factory::getServiceGroupService()->addAuthorization($user);
        if (is_null($user)) {
            throw new \Exception("Unregistered users can't create service groups.");
        }
        // If the user is registered they're allowed to add a service group
        $configService = \Factory::getConfigService();
        $scopes = \Factory::getScopeService()->getDefaultScopesSelectedArray();
        $numberScopesRequired = $configService->getMinimumScopesRequired('service_group');
        $params = array('scopes' => $scopes, 'numberOfScopesRequired' => $numberScopesRequired);
        show_view("service_group/add_service_group.php", $params);
    } catch (Exception $e) {
        show_view("error.php", $e->getMessage());
        die;
    }
}