Windchill
정책 설정 API
HUNIIIIII
2023. 9. 27. 15:08
정책 설정에 대한 코드 예시입니다.
하위 코드는 예시일 뿐이니 알맞게 수정하여 사용하면 됩니다.
//정책에 추가할 참여자를 가져온다. ex) 그룹, 사용자, 조직, 역할
WTGroup group = createWTGroup(groupName);
//정책을 적용할 도메인을 가져온다.
String orgName = ConfigImpl.getInstance().getString("org.context.name");
String productName = ConfigImpl.getInstance().getString("product.context.name");
WTContainerRef container_ref = WTContainerHelper.service.getByPath("/wt.inf.container.OrgContainer=" + orgName + "/wt.pdmlink.PDMLinkProduct=" + productName);
AdministrativeDomain domain = AdministrativeDomainHelper.manager.getDomain(path, container_ref);
AdminDomainRef doaminref = AdminDomainRef.newAdminDomainRef(domain);
//정책에 추가할 유형을 지정해준다.
String targetObject = "WCTYPE|" + WTPart.class.getName();
WTPrincipalReference prinRef = WTPrincipalReference.newWTPrincipalReference(group);
//허용 권한 SET
AccessPermissionSet grant = new AccessPermissionSet();
//거부 권한 SET
AccessPermissionSet deny = new AccessPermissionSet();
//절대적 거부 권한 SET
AccessPermissionSet absolutDeny = new AccessPermissionSet();
//허용,거부할 권한을 설정해준다.
//읽기, 다운로드 권한을 허용하겠다는 의미
grant.add(AccessPermission.READ);
grant.add(AccessPermission.DOWNLOAD);
//수정 권한은 거부
deny.add(AccessPermission.MODIFY);
//권한 셋팅
//AccessControlHelper 클래스를 통해 권한 CRUD 가능하다.
if("create".equals(Type)) {
AccessControlHelper.manager.createAccessControlRule(doaminref, targetObject, null, prinRef, false, grant, deny, absolutDeny);
}else if("update".equals(Type)) {
AccessControlHelper.manager.updateAccessControlRule(doaminref, targetObject, null, prinRef, false, grant, deny, absolutDeny);
}else if("delete".equals(Type)) {
AccessControlHelper.manager.deleteAccessControlRule(doaminref, targetObject, null, prinRef, false);
}