getusersupportgroup, admin check

main
Said Gedik 2023-10-16 17:30:00 +02:00
parent 7057328198
commit 2aec1eeab1
3 changed files with 39 additions and 11 deletions

View File

@ -47,6 +47,7 @@ public class RemedyJavaAPI {
server.setPort(50000); server.setPort(50000);
this.connect(); this.connect();
// TODO: move to APIApplication.java or State.java - see where it fits // TODO: move to APIApplication.java or State.java - see where it fits
State.getInstance().queryState(this); State.getInstance().queryState(this);
SupportGroup.getInstance().querySupportGroups(this); SupportGroup.getInstance().querySupportGroups(this);
@ -350,4 +351,7 @@ public class RemedyJavaAPI {
} }
} }
public boolean isAdministrator() throws ARException {
return server.isAdministrator();
}
} }

View File

@ -90,6 +90,8 @@ public class Change {
this.queryChange.getFormName(), this.queryChange.getFormName(),
sort, request.getSliceStart(), sort, request.getSliceStart(),
request.getSliceEnd()); request.getSliceEnd());
System.out.println(qualifier); // "\'1000000182\'!=\".\""
var entriesSize = api.getFormSize(qualifier, this.queryChange.getFormName()); var entriesSize = api.getFormSize(qualifier, this.queryChange.getFormName());
var changes = new ArrayList<ChangeItem>(); var changes = new ArrayList<ChangeItem>();
@ -151,7 +153,9 @@ public class Change {
changes.add(change); changes.add(change);
} }
System.out.println(entries.size());
api.freeImpersonatedUser(); api.freeImpersonatedUser();
return new ChangeResponse(entriesSize, changes); return new ChangeResponse(entriesSize, changes);
} }

View File

@ -15,6 +15,7 @@ import com.nttdata.calender.errorhandling.ErrorTypes.NotFoundError;
*/ */
public class SupportGroup { public class SupportGroup {
private static final String formName = "CTM:Support Group"; private static final String formName = "CTM:Support Group";
private static final String formAssoc = "CTM:Support Group Assoc LookUp";
private static final SupportGroup INSTANCE = new SupportGroup(); private static final SupportGroup INSTANCE = new SupportGroup();
private ArrayList<SupportGroupGetResponse> supportGroups; private ArrayList<SupportGroupGetResponse> supportGroups;
private SupportGroupGetResponse userSupportGroup; private SupportGroupGetResponse userSupportGroup;
@ -43,13 +44,19 @@ public class SupportGroup {
* @throws NotFoundError if no support groups are found in this context. * @throws NotFoundError if no support groups are found in this context.
*/ */
public void querySupportGroups(RemedyJavaAPI api) throws ARException, NotFoundError { public void querySupportGroups(RemedyJavaAPI api) throws ARException, NotFoundError {
var querySupportGroups = new Query.QueryBuilder(formName)
// TODO: if remedy admin, permission group id 1
api.impersonateUser("ext_StanzPa");
var querySupportGroups = new Query.QueryBuilder(formAssoc)
.addFieldId("SupportGroup", 1000000015) .addFieldId("SupportGroup", 1000000015)
.addFieldId("SupportGroupId", 1) .addFieldId("SupportGroupId", 1000000079)
.build(); .build();
System.out.println(api.isAdministrator());
if (api.isAdministrator()) {
this.supportGroups = api this.supportGroups = api
.queryFieldsById("\'Support Group ID\' != \"\"", querySupportGroups.getFieldIds(), .queryFieldsById("\'4\' == \"_\"", querySupportGroups.getFieldIds(),
querySupportGroups.getFormName(), null, 0, 0) querySupportGroups.getFormName(), null, 0, 0)
.stream() .stream()
.map(entry -> new SupportGroupGetResponse( .map(entry -> new SupportGroupGetResponse(
@ -57,10 +64,23 @@ public class SupportGroup {
entry.get(querySupportGroups.getFieldId("SupportGroupId")).toString())) entry.get(querySupportGroups.getFieldId("SupportGroupId")).toString()))
.distinct() .distinct()
.collect(Collectors.toCollection(ArrayList::new)); .collect(Collectors.toCollection(ArrayList::new));
} else {
this.supportGroups = api
.queryFieldsById("\'4\' == \"" + api.getUser() + "\"", querySupportGroups.getFieldIds(),
querySupportGroups.getFormName(), null, 0, 0)
.stream()
.map(entry -> new SupportGroupGetResponse(
entry.get(querySupportGroups.getFieldId("SupportGroup")).toString(),
entry.get(querySupportGroups.getFieldId("SupportGroupId")).toString()))
.distinct()
.collect(Collectors.toCollection(ArrayList::new));
}
if (this.supportGroups.isEmpty()) { if (this.supportGroups.isEmpty()) {
throw new NotFoundError("No support groups found in this context"); throw new NotFoundError("No support groups found in this context");
} }
api.freeImpersonatedUser();
} }
/** /**