use of com.yahoo.athenz.zms.Role in project athenz by yahoo.
the class FileConnection method updateRole.
@Override
public boolean updateRole(String domainName, Role role) {
DomainStruct domainStruct = getDomainStruct(domainName);
if (domainStruct == null) {
throw ZMSUtils.error(ResourceException.NOT_FOUND, "domain not found", "updateRole");
}
if (domainStruct.getRoles() == null) {
domainStruct.setRoles(new HashMap<String, Role>());
}
HashMap<String, Role> roles = domainStruct.getRoles();
String roleName = extractRoleName(domainName, role.getName());
if (roleName == null) {
throw ZMSUtils.error(ResourceException.BAD_REQUEST, "invalid role name", "updateRole");
}
// here we only need to update the main attrs and not
// the members
Role originalRole = getRoleObject(domainStruct, roleName);
List<RoleMember> members = role.getRoleMembers();
if (originalRole != null) {
role.setRoleMembers(originalRole.getRoleMembers());
} else {
role.setRoleMembers(null);
}
role.setModified(Timestamp.fromCurrentTime());
roles.put(roleName, role);
putDomainStruct(domainName, domainStruct);
role.setRoleMembers(members);
return true;
}
use of com.yahoo.athenz.zms.Role in project athenz by yahoo.
the class FileConnection method deleteRoleMember.
@Override
public boolean deleteRoleMember(String domainName, String roleName, String principal, String admin, String auditRef) {
DomainStruct domainStruct = getDomainStruct(domainName);
if (domainStruct == null) {
throw ZMSUtils.error(ResourceException.NOT_FOUND, "domain not found", "deleteRoleMember");
}
Role role = getRoleObject(domainStruct, roleName);
if (role == null) {
throw ZMSUtils.error(ResourceException.NOT_FOUND, "role not found", "deleteRoleMember");
}
List<RoleMember> roleMembers = role.getRoleMembers();
if (roleMembers != null) {
for (int idx = 0; idx < roleMembers.size(); idx++) {
if (roleMembers.get(idx).getMemberName().equalsIgnoreCase(principal)) {
roleMembers.remove(idx);
break;
}
}
}
putDomainStruct(domainName, domainStruct);
return true;
}
use of com.yahoo.athenz.zms.Role in project athenz by yahoo.
the class FileConnection method updateRoleModTimestamp.
@Override
public boolean updateRoleModTimestamp(String domainName, String roleName) {
DomainStruct domainStruct = getDomainStruct(domainName);
if (domainStruct == null) {
throw ZMSUtils.error(ResourceException.NOT_FOUND, "domain not found", "updateRoleModTimestamp");
}
Role role = getRoleObject(domainStruct, roleName);
role.setModified(Timestamp.fromCurrentTime());
putDomainStruct(domainName, domainStruct);
return true;
}
use of com.yahoo.athenz.zms.Role in project athenz by yahoo.
the class FileConnection method getRoleMember.
@Override
public Membership getRoleMember(String domainName, String roleName, String principal) {
DomainStruct domainStruct = getDomainStruct(domainName);
if (domainStruct == null) {
throw ZMSUtils.error(ResourceException.NOT_FOUND, "domain not found", "getRoleMember");
}
Role role = getRoleObject(domainStruct, roleName);
if (role == null) {
throw ZMSUtils.error(ResourceException.NOT_FOUND, "role not found", "getRoleMember");
}
Membership membership = new Membership().setMemberName(principal).setRoleName(ZMSUtils.roleResourceName(domainName, roleName)).setIsMember(false);
if (role.getRoleMembers() != null) {
Set<RoleMember> members = new HashSet<>(role.getRoleMembers());
for (RoleMember member : members) {
if (member.getMemberName().equalsIgnoreCase(principal)) {
membership.setIsMember(true);
membership.setExpiration(member.getExpiration());
break;
}
}
}
return membership;
}
use of com.yahoo.athenz.zms.Role in project athenz by yahoo.
the class FileConnection method insertRoleMember.
@Override
public boolean insertRoleMember(String domainName, String roleName, RoleMember member, String admin, String auditRef) {
DomainStruct domainStruct = getDomainStruct(domainName);
if (domainStruct == null) {
throw ZMSUtils.error(ResourceException.NOT_FOUND, "domain not found", "insertRoleMember");
}
Role role = getRoleObject(domainStruct, roleName);
if (role == null) {
throw ZMSUtils.error(ResourceException.NOT_FOUND, "role not found", "insertRoleMember");
}
if (!validatePrincipalDomain(member.getMemberName())) {
throw ZMSUtils.error(ResourceException.NOT_FOUND, "principal domain not found", "insertRoleMember");
}
// and if it doesn't exist then create one
if (role.getRoleMembers() == null) {
role.setRoleMembers(new ArrayList<RoleMember>());
}
// need to check if the member already exists
boolean entryUpdated = false;
for (RoleMember roleMember : role.getRoleMembers()) {
if (roleMember.getMemberName().equals(member.getMemberName())) {
roleMember.setExpiration(member.getExpiration());
entryUpdated = true;
}
}
if (!entryUpdated) {
role.getRoleMembers().add(member);
}
putDomainStruct(domainName, domainStruct);
return true;
}
Aggregations