Skip to content

Commit 7bc3b3f

Browse files
authored
Merge pull request #461 from Sae126V/GT-183-Need-non-admin-Service-Types-views
[GT-183] Add service types page for non-admins
2 parents 6fa75c6 + d01f15e commit 7bc3b3f

File tree

11 files changed

+64
-55
lines changed

11 files changed

+64
-55
lines changed

config/web_portal/menu.xml

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,12 @@
4242
<link>index.php?Page_Type=Services</link>
4343
</Services>
4444

45+
<ServiceTypes>
46+
<show_on_instance>all</show_on_instance>
47+
<name>Service Types</name>
48+
<link>index.php?Page_Type=Service_Types</link>
49+
</ServiceTypes>
50+
4551
<Scopes>
4652
<show_on_instance>all</show_on_instance>
4753
<name>Scopes</name>
@@ -136,7 +142,13 @@
136142
<name>Add Project</name>
137143
<link>index.php?Page_Type=Admin_Add_Project</link>
138144
</AddProject>
139-
145+
146+
<AddServiceTypes>
147+
<show_on_instance>admin</show_on_instance>
148+
<name>Add Service Type</name>
149+
<link>index.php?Page_Type=Admin_Add_Service_Type</link>
150+
</AddServiceTypes>
151+
140152
<MoveServiceEndPoint>
141153
<show_on_instance>admin</show_on_instance>
142154
<name>Move Service</name>
@@ -149,12 +161,6 @@
149161
<link>index.php?Page_Type=Admin_Move_Site</link>
150162
</MoveSite>
151163

152-
<ServiceTypes>
153-
<show_on_instance>admin</show_on_instance>
154-
<name>Service Types</name>
155-
<link>index.php?Page_Type=Admin_Service_Types</link>
156-
</ServiceTypes>
157-
158164
<Users>
159165
<show_on_instance>admin</show_on_instance>
160166
<name>Users</name>

config/web_portal/menu.xsd

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
<xs:element name="Sites" type="showType" minOccurs="0"/>
1616
<xs:element name="ServiceGroups" type="showType" minOccurs="0"/>
1717
<xs:element name="Services" type="showType" minOccurs="0"/>
18+
<xs:element name="ServiceTypes" type="showType" minOccurs="0"/>
1819
<xs:element name="Scopes" type="showType" minOccurs="0"/>
1920
<xs:element name="RoleActionMappings" type="showType" minOccurs="0"/>
2021
<xs:element name="AddSite" type="showType" minOccurs="0"/>
@@ -26,9 +27,9 @@
2627
<xs:element name="HelpAndContact" type="showType" minOccurs="0"/>
2728
<xs:element name="AddNGI" type="showType" minOccurs="0"/>
2829
<xs:element name="AddProject" type="showType" minOccurs="0"/>
30+
<xs:element name="AddServiceType" type="showType" minOccurs="0"/>
2931
<xs:element name="MoveServiceEndPoint" type="showType" minOccurs="0"/>
3032
<xs:element name="MoveSite" type="showType" minOccurs="0"/>
31-
<xs:element name="ServiceTypes" type="showType" minOccurs="0"/>
3233
<xs:element name="Users" type="showType" minOccurs="0"/>
3334
</xs:all>
3435
</xs:complexType>

htdocs/web_portal/controllers/admin/view_service_type.php renamed to htdocs/web_portal/controllers/service_type/view_service_type.php

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,31 +24,29 @@
2424

2525
function view_service_type()
2626
{
27-
//Check the user has permission to see the page, will throw exception
28-
//if correct permissions are lacking
29-
checkUserIsAdmin();
27+
$params = [];
28+
29+
$identifier = Get_User_Principle();
30+
$user = \Factory::getUserService()->getUserByPrinciple($identifier);
31+
32+
if ($user != null) {
33+
$params['isUserAdmin'] = checkUserForAdminCredentials($user);
34+
}
3035
if (!isset($_REQUEST['id']) || !is_numeric($_REQUEST['id'])) {
3136
throw new Exception("An id must be specified");
3237
}
33-
$dn = Get_User_Principle();
34-
$user = \Factory::getUserService()->getUserByPrinciple($dn);
3538

3639
$serv = \Factory::getServiceTypeService();
3740
/**
3841
* @var \ServiceType $serviceType
3942
*/
4043
$serviceType = $serv ->getServiceType($_REQUEST['id']);
4144

42-
$params = [];
4345
$params['Name'] = $serviceType->getName();
4446
$params['Description'] = $serviceType->getDescription();
4547
$params['ID'] = $serviceType->getId();
4648
$params['AllowMonitoringException'] = $serviceType->getAllowMonitoringException();
4749
$params['Services'] = $serv->getServices($params['ID']);
48-
/**
49-
* @var \User $user
50-
*/
51-
$params['portalIsReadOnly'] = portalIsReadOnlyAndUserIsNotAdmin($user);
5250

53-
show_view("admin/view_service_type.php", $params, $params['Name']);
51+
show_view("service_type/view_service_type.php", $params, $params['Name']);
5452
}

htdocs/web_portal/controllers/admin/view_service_types.php renamed to htdocs/web_portal/controllers/service_type/view_service_types.php

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,9 @@
2323
require_once __DIR__ . '/../../../web_portal/components/Get_User_Principle.php';
2424

2525
function show_all(){
26-
//Check the user has permission to see the page, will throw exception
27-
//if correct permissions are lacking
28-
checkUserIsAdmin();
29-
30-
$dn = Get_User_Principle();
31-
$user = \Factory::getUserService()->getUserByPrinciple($dn);
3226

3327
$serviceTypes = \Factory::getServiceTypeService()->getServiceTypes();
3428
$params['ServiceTypes']= $serviceTypes;
35-
$params['portalIsReadOnly'] = portalIsReadOnlyAndUserIsNotAdmin($user);
36-
show_view('admin/view_service_types.php', $params, 'Service Types');
29+
30+
show_view('service_type/view_service_types.php', $params, 'Service Types');
3731
}

htdocs/web_portal/controllers/utils.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -817,3 +817,14 @@ function getReadPDParams($user)
817817
}
818818
return array($userIsAdmin, $authenticated);
819819
}
820+
821+
/**
822+
* Helper to identify whether the user is an Admin or NOT.
823+
* Useful for deciding whether to display elements based on admin status.
824+
*
825+
* Returns `true` if the user is an Admin, `false` otherwise.
826+
*/
827+
function checkUserForAdminCredentials($user)
828+
{
829+
return $user->isAdmin();
830+
}

htdocs/web_portal/index.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -450,14 +450,14 @@ function Draw_Page($Page_Type) {
450450
require_once __DIR__.'/controllers/admin/move_service_end_point.php';
451451
move_service_end_point();
452452
break;
453-
case "Admin_Service_Types":
453+
case "Service_Types":
454454
rejectIfNotAuthenticated();
455-
require_once __DIR__.'/controllers/admin/view_service_types.php';
455+
require_once __DIR__.'/controllers/service_type/view_service_types.php';
456456
show_all();
457457
break;
458-
case "Admin_Service_Type":
458+
case "Service_Type":
459459
rejectIfNotAuthenticated();
460-
require_once __DIR__.'/controllers/admin/view_service_type.php';
460+
require_once __DIR__.'/controllers/service_type/view_service_type.php';
461461
view_service_type();
462462
break;
463463
case "Admin_Edit_Service_Type":

htdocs/web_portal/views/admin/added_service_type.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<?php require_once __DIR__ . '/../fragments/serviceTypeInfo.php'; ?>
66

7-
<a href="index.php?Page_Type=Admin_Service_Type&amp;id=<?php echo $params['ID'] ?>">
7+
<a href="index.php?Page_Type=Service_Type&amp;id=<?= $params['ID']; ?>">
88
Click here</a> to view the <?php xecho($params['Name'])?> service type.
99

1010

htdocs/web_portal/views/admin/delete_service_type_denied.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
<div class="rightPageContainer">
44
<h1 class="Success">Deletion Failed</h1><br />
55
The service type '
6-
<a href="index.php?Page_Type=Admin_Service_Type&amp;id=<?php echo $serviceType->getId();?>">
6+
<?php
7+
$serviceTypeRelPath = "index.php?Page_Type=Service_Type";
8+
?>
9+
<a href="<?= $serviceTypeRelPath; ?>&amp;id=<?= $serviceType->getId(); ?>">
710
<?php xecho($serviceType->getName());?>
811
</a>'
912
can not be deleted as the following services are still of this type:

htdocs/web_portal/views/admin/edited_service_type.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
<div class="rightPageContainer">
22
<h1 class="Success">Success</h1><br />
3-
<p><a href="index.php?Page_Type=Admin_Service_Type&amp;id=<?php echo $params['ID']?>">
4-
<?php xecho($params['Name'])?></a> Service Type properties have been successfully edited to -
3+
<p>
4+
<a href="index.php?Page_Type=Service_Type&amp;id=<?= $params['ID']; ?>"
5+
><?php xecho($params['Name']); ?></a>
6+
Service Type properties have been successfully edited to -
57
</p>
68

79
<?php require_once __DIR__ . '/../fragments/serviceTypeInfo.php'; ?>

htdocs/web_portal/views/admin/view_service_type.php renamed to htdocs/web_portal/views/service_type/view_service_type.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
$id = $params['ID'];
66
$services = $params['Services'];
77
$SEsCount = sizeof($services);
8-
$portalIsReadOnly = $params['portalIsReadOnly'];
8+
$isUserAdmin = $params['isUserAdmin'];
99
?>
1010

1111

@@ -20,8 +20,9 @@
2020
</div>
2121

2222
<!--Edit/Delete buttons-->
23-
<!-- Only show when portal is not read only mode -->
24-
<?php if (!$portalIsReadOnly) :?>
23+
<!--Enable edit and delete functionality ONLY when
24+
the web portal is accessed by an Admin.-->
25+
<?php if ($isUserAdmin) :?>
2526
<div style="float: right;">
2627
<div style="float: right; margin-left: 2em;">
2728
<a href="index.php?Page_Type=Admin_Edit_Service_Type&amp;id=<?php echo $id ?>">

0 commit comments

Comments
 (0)