Skip to content

Commit

Permalink
made changes in the permissions to improve pilot operator relationships
Browse files Browse the repository at this point in the history
  • Loading branch information
dvdthecoder committed Jan 27, 2024
1 parent 7d91e09 commit 251a53d
Show file tree
Hide file tree
Showing 5 changed files with 47 additions and 40 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ public boolean associateCAAToPlatform(String caaResourceID) {
);
}

if (tokenValue != null) {
if (tokenValue != null && tokenValue.length() > 0) {
return true;
} else {
return false;
Expand Down Expand Up @@ -356,7 +356,7 @@ public boolean isFlightOperationsAdmin(String pilotUserID, String operatorResour

/** This function is used to add pilot user to operator */
public boolean addPilotToOperator(
String pilotUserID,
String pilotResourceID,
String operatorResourceID,
String operatorUserID
) {
Expand All @@ -377,7 +377,7 @@ public boolean addPilotToOperator(
RelationshipType.PILOT,
operatorResourceID,
ResourceType.OPERATOR,
pilotUserID,
pilotResourceID,
SubjectType.PILOT
);
}
Expand Down Expand Up @@ -575,6 +575,19 @@ public Set<String> lookupResourcesForRegulatorApproval(String caaAdminsUserID) {
return resourceIDSetForApproval;
}

public boolean lookupRegulator(String resourceID) {
Set<String> resourceSet = spicedbClient.lookupResources(
RelationshipType.PLATFORM,
ResourceType.CAA,
SubjectType.PLATFORM,
AuthZConstants.PLATFORM_ID
);

System.out.println(resourceSet);

return resourceSet.contains(resourceID);
}

public Set<String> lookupRegulator() {
Set<String> resourceSet = spicedbClient.lookupResources(
RelationshipType.PLATFORM,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ schema: |-
definition pilot {
relation flight_operator: user
relation regulator: caa
permission approve = regulator->super_admin
permission flight_operations_admin = flight_operator
permission approve = regulator->super_admin
}
/** producer of uas and uas types */
Expand Down Expand Up @@ -60,8 +60,8 @@ schema: |-
relation manufacturer: manufacturer
relation regulator: caa
relation owner: operator | pilot
permission read_uas = manufacturer->super_admin + regulator->super_admin + owner->super_admin + pilot->flight_operations_admin
permission decommision_uas = manufacturer->super_admin + regulator->super_admin + owner->super_admin + pilot->flight_operations_admin
permission read_uas = manufacturer->super_admin + regulator->super_admin + owner->super_admin + owner->flight_operations_admin
permission decommision_uas = manufacturer->super_admin + regulator->super_admin + owner->super_admin + owner->flight_operations_admin
}
/** defines relationships of uastype with regulator and manufacturer */
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

/** user represents a user */
definition user {}

Expand All @@ -21,8 +22,8 @@
definition pilot {
relation flight_operator: user
relation regulator: caa
permission approve = regulator->super_admin
permission flight_operations_admin = flight_operator
permission approve = regulator->super_admin
}

/** producer of uas and uas types */
Expand Down Expand Up @@ -59,8 +60,8 @@
relation manufacturer: manufacturer
relation regulator: caa
relation owner: operator | pilot
permission read_uas = manufacturer->super_admin + regulator->super_admin + owner->super_admin + pilot->flight_operations_admin
permission decommision_uas = manufacturer->super_admin + regulator->super_admin + owner->super_admin + pilot->flight_operations_admin
permission read_uas = manufacturer->super_admin + regulator->super_admin + owner->super_admin + owner->flight_operations_admin
permission decommision_uas = manufacturer->super_admin + regulator->super_admin + owner->super_admin + owner->flight_operations_admin
}

/** defines relationships of uastype with regulator and manufacturer */
Expand Down Expand Up @@ -95,3 +96,4 @@
permission super_admin = administrator
permission approve = regulator->super_admin
}

Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,7 @@
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.nimbusds.jwt.SignedJWT;
import in.ispirt.pushpaka.authorisation.RelationshipType;
import in.ispirt.pushpaka.authorisation.ResourceType;
import in.ispirt.pushpaka.authorisation.SubjectType;
import in.ispirt.pushpaka.authorisation.utils.AuthZ;
import in.ispirt.pushpaka.utils.Logging;
import java.io.IOException;
Expand Down Expand Up @@ -68,7 +66,7 @@ private static String loginUser(java.util.Map.Entry<String, String> user)
List<NameValuePair> formparams = Arrays.asList(
new BasicNameValuePair("client_id", "backend"),
new BasicNameValuePair("grant_type", "password"),
new BasicNameValuePair("client_secret", "qV6lTdv59FyBL1kn2bRnp6LQF4HVxOkk"),
new BasicNameValuePair("client_secret", "Gm236XNRzKTG04hOiXjhRIgZ59krCOFG"),
new BasicNameValuePair("scope", "openid"),
new BasicNameValuePair("username", user.getKey()),
new BasicNameValuePair("password", user.getValue())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,7 @@ public void testCreatePlatformUser() {
public void testAssociateCAAToPlatform() {
// caa:caa-authority#platform@platform:digital-sky-platform

String CAAResourceID = "caa-authority";
boolean isSuccess = authZ.associateCAAToPlatform(CAAResourceID);
boolean isSuccess = authZ.associateCAAToPlatform(authZ.getCaaResourceID());

assertTrue(isSuccess);
}
Expand All @@ -61,12 +60,11 @@ public void testAssociateCAAToPlatform() {
public void testCreateCAAAdministrator() {
// caa:caa-authority#administrator@user:caa-user

String caaResourceID = "caa-authority";
String caaResourceAdminID = "caa-user";
String platformAdminId = "platform-user";

boolean isSuccess = authZ.createCAAAdmin(
caaResourceID,
authZ.getCaaResourceID(),
caaResourceAdminID,
platformAdminId
);
Expand Down Expand Up @@ -187,28 +185,40 @@ public void testIsResourceAdministratorNegative() {
@Test
public void testAddPilotToOperator() {
// pilot:default-pilot-group#member@user:pilot-user-2
String pilotResourceID = "pilot-resource-1";
String pilotUserID = "pilot-user-1";
String operatorResourceID = "operator-1";
String operatorAdminUserID = "operator-user";

boolean isSuccess = authZ.addPilotToOperator(
boolean addPilot = authZ.addPilot(
pilotResourceID,
pilotUserID,
authZ.getCaaResourceID()
);

boolean isSuccess = authZ.addPilotToOperator(
pilotResourceID,
operatorResourceID,
operatorAdminUserID
);

assertTrue(isSuccess);
boolean isPilotflightOperationsAdmin = authZ.isFlightOperationsAdmin(
pilotUserID,
operatorResourceID
);

assertTrue(addPilot && isSuccess && isPilotflightOperationsAdmin);
}

@Test
public void testRemovePilotToOperator() {
// pilot:default-pilot-group#member@user:pilot-user-2
String pilotUserID = "pilot-user-1";
// pilot:default-pilot-group#member@user:pilot-user-
String pilotResourceID = "pilot-resource-1";
String operatorResourceID = "operator-1";
String operatorAdminUserID = "operator-user";

boolean isSuccess = authZ.removePilotFromOperator(
pilotUserID,
pilotResourceID,
operatorResourceID,
operatorAdminUserID
);
Expand All @@ -219,29 +229,19 @@ public void testRemovePilotToOperator() {
@Test
public void testAddPilotToOperatoNegative() {
// pilot:default-pilot-group#member@user:pilot-user-2
String pilotUserID = "pilot-user-1";
String pilotResourceID = "pilot-resource";
String operatorResourceID = "operator-1";
String operatorAdminUserID = "operator-user-1";

boolean isSuccess = authZ.addPilotToOperator(
pilotUserID,
pilotResourceID,
operatorResourceID,
operatorAdminUserID
);

assertFalse(isSuccess);
}

@Test
public void testFlightOperationsAdmin() {
String pilotUserID = "pilot-user-1";
String operatorResourceID = "operator-1";

boolean isSuccess = authZ.isFlightOperationsAdmin(pilotUserID, operatorResourceID);

assertTrue(isSuccess);
}

@Test
public void testFlightOperationsAdminNegative() {
String pilotUserID = "pilot-user-2";
Expand Down Expand Up @@ -412,14 +412,8 @@ public void testPilotToOperators() {

@Test
public void testLookupRegulator() {
Set<String> regulator = authZ.lookupRegulator();
boolean isSuccess = authZ.lookupRegulator(authZ.getCaaResourceID());

assertTrue(regulator.size() == 1);
}

@Test
void removeRegulator() {
boolean isSuccess = authZ.removeRegulator();
assertTrue(isSuccess);
}
}

0 comments on commit 251a53d

Please sign in to comment.