use of com.infiniteautomation.mango.util.script.ScriptPermissions in project ma-core-public by infiniteautomation.
the class ScriptPermissionConverter method jsonWrite.
@Override
public JsonValue jsonWrite(JsonTypeWriter writer, Object value) throws JsonException {
ScriptPermissions permission = (ScriptPermissions) value;
JsonArray roles = new JsonArray();
for (Role role : permission.getRoles()) {
roles.add(role.getXid());
}
return roles;
}
use of com.infiniteautomation.mango.util.script.ScriptPermissions in project ma-core-public by infiniteautomation.
the class SetPointEventHandlerVO method readObject.
@SuppressWarnings({ "unchecked", "deprecation" })
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
int ver = in.readInt();
// Switch on the version of the class so that version changes can be elegantly handled.
if (ver == 1) {
targetPointId = in.readInt();
activeAction = in.readInt();
activeValueToSet = SerializationHelper.readSafeUTF(in);
activePointId = in.readInt();
inactiveAction = in.readInt();
inactiveValueToSet = SerializationHelper.readSafeUTF(in);
inactivePointId = in.readInt();
activeScript = inactiveScript = null;
additionalContext = new ArrayList<IntStringPair>();
scriptRoles = new ScriptPermissions();
} else if (ver == 2) {
targetPointId = in.readInt();
activeAction = in.readInt();
activeValueToSet = SerializationHelper.readSafeUTF(in);
activePointId = in.readInt();
inactiveAction = in.readInt();
inactiveValueToSet = SerializationHelper.readSafeUTF(in);
inactivePointId = in.readInt();
activeScript = SerializationHelper.readSafeUTF(in);
inactiveScript = SerializationHelper.readSafeUTF(in);
additionalContext = new ArrayList<IntStringPair>();
scriptRoles = new ScriptPermissions();
} else if (ver == 3) {
targetPointId = in.readInt();
activeAction = in.readInt();
activeValueToSet = SerializationHelper.readSafeUTF(in);
activePointId = in.readInt();
inactiveAction = in.readInt();
inactiveValueToSet = SerializationHelper.readSafeUTF(in);
inactivePointId = in.readInt();
activeScript = SerializationHelper.readSafeUTF(in);
inactiveScript = SerializationHelper.readSafeUTF(in);
additionalContext = (List<IntStringPair>) in.readObject();
com.serotonin.m2m2.rt.script.ScriptPermissions oldPermissions = (com.serotonin.m2m2.rt.script.ScriptPermissions) in.readObject();
if (oldPermissions != null) {
// We will be using this in the upgrade so this is temporary and will be used to set
// the scriptRoles
legacyScriptRoles = oldPermissions.getAllLegacyPermissions();
legacyPermissionHolderName = oldPermissions.getPermissionHolderName();
} else {
scriptRoles = new ScriptPermissions();
}
} else if (ver == 4) {
targetPointId = in.readInt();
activeAction = in.readInt();
activeValueToSet = SerializationHelper.readSafeUTF(in);
activePointId = in.readInt();
inactiveAction = in.readInt();
inactiveValueToSet = SerializationHelper.readSafeUTF(in);
inactivePointId = in.readInt();
activeScript = SerializationHelper.readSafeUTF(in);
inactiveScript = SerializationHelper.readSafeUTF(in);
additionalContext = (List<IntStringPair>) in.readObject();
scriptRoles = (ScriptPermissions) in.readObject();
}
}
use of com.infiniteautomation.mango.util.script.ScriptPermissions in project ma-core-public by infiniteautomation.
the class EmailEventHandlerDaoTest method newVO.
@Override
EmailEventHandlerVO newVO() {
EmailEventHandlerVO vo = (EmailEventHandlerVO) ModuleRegistry.getEventHandlerDefinition(EmailEventHandlerDefinition.TYPE_NAME).baseCreateEventHandlerVO();
vo.setXid(UUID.randomUUID().toString());
vo.setName(UUID.randomUUID().toString());
ScriptPermissions permissions = new ScriptPermissions(Collections.singleton(readRole));
vo.setScriptRoles(permissions);
List<EventTypeMatcher> eventTypes = Collections.singletonList(new EventTypeMatcher(new MockEventType(readRole)));
vo.setEventTypes(eventTypes);
return vo;
}
use of com.infiniteautomation.mango.util.script.ScriptPermissions in project ma-core-public by infiniteautomation.
the class SetPointEventHandlerServiceTest method testCannotInsertUnauthorizedScriptRole.
@Test
@ExpectValidationException("scriptRoles")
public void testCannotInsertUnauthorizedScriptRole() {
addRoleToCreatePermission(editRole);
SetPointEventHandlerVO vo = newVO(editUser);
vo.setReadPermission(MangoPermission.requireAnyRole(editRole));
vo.setEditPermission(MangoPermission.requireAnyRole(editRole));
ScriptPermissions permissions = new ScriptPermissions(Sets.newHashSet(readRole, editRole));
vo.setScriptRoles(permissions);
runAs.runAs(editUser, () -> {
service.insert(vo);
});
}
use of com.infiniteautomation.mango.util.script.ScriptPermissions in project ma-core-public by infiniteautomation.
the class SetPointEventHandlerServiceTest method testCreatePrivilegeSuccess.
@Test
public void testCreatePrivilegeSuccess() {
SetPointEventHandlerVO vo = newVO(editUser);
vo.setReadPermission(MangoPermission.requireAnyRole(editRole));
vo.setEditPermission(MangoPermission.requireAnyRole(editRole));
ScriptPermissions permissions = new ScriptPermissions(Sets.newHashSet(editRole));
vo.setScriptRoles(permissions);
addRoleToCreatePermission(editRole);
runAs.runAs(editUser, () -> {
service.insert(vo);
});
}
Aggregations