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);
this.connect();
// TODO: move to APIApplication.java or State.java - see where it fits
State.getInstance().queryState(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(),
sort, request.getSliceStart(),
request.getSliceEnd());
System.out.println(qualifier); // "\'1000000182\'!=\".\""
var entriesSize = api.getFormSize(qualifier, this.queryChange.getFormName());
var changes = new ArrayList<ChangeItem>();
@ -151,7 +153,9 @@ public class Change {
changes.add(change);
}
System.out.println(entries.size());
api.freeImpersonatedUser();
return new ChangeResponse(entriesSize, changes);
}

View File

@ -15,6 +15,7 @@ import com.nttdata.calender.errorhandling.ErrorTypes.NotFoundError;
*/
public class SupportGroup {
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 ArrayList<SupportGroupGetResponse> supportGroups;
private SupportGroupGetResponse userSupportGroup;
@ -43,24 +44,43 @@ public class SupportGroup {
* @throws NotFoundError if no support groups are found in this context.
*/
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("SupportGroupId", 1)
.addFieldId("SupportGroupId", 1000000079)
.build();
this.supportGroups = api
.queryFieldsById("\'Support Group ID\' != \"\"", 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));
System.out.println(api.isAdministrator());
if (api.isAdministrator()) {
this.supportGroups = api
.queryFieldsById("\'4\' == \"_\"", 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));
} 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()) {
throw new NotFoundError("No support groups found in this context");
}
api.freeImpersonatedUser();
}
/**