/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package models.datatable; import java.util.Map; import util.datatable.DataTable; import com.google.common.collect.Maps; import controllers.resources.ObjectBuckets.BucketACLForm; public class BucketACLDataTable extends DataTable { public BucketACLDataTable() { addColumn("name").setRenderFunction("renderLink"); addColumn("domain"); addColumn("type"); addColumn("permission"); sortAll(); setDefaultSortField("name"); } public static class AclInfo { public String id; public String name; public String domain; public String type; public String permission; public String bucketId; public AclInfo(String name, String type, String permission, String bucketId, String domain) { this.name = name; this.domain = domain; this.type = type; this.permission = formatPermissions(permission); this.bucketId = bucketId; id = BucketACLForm.createId(this.name, this.type, this.bucketId, this.domain, permission); } private String formatPermissions(String permission) { StringBuffer formatedValues = new StringBuffer(""); if (!permission.isEmpty()) { Map<String, String> permissionMap = getPermissionsMap(); String[] permArray = permission.split("\\|"); for (String acePermission : permArray) { formatedValues.append(permissionMap.get(acePermission)).append(", "); } } String stringToReturn = ""; stringToReturn = formatedValues.toString(); if (!stringToReturn.isEmpty() && stringToReturn.length() > 2) { stringToReturn = stringToReturn.substring(0, stringToReturn.length() - 2); } return stringToReturn; } private Map<String, String> getPermissionsMap() { Map<String, String> permissionMap = Maps.newHashMap(); permissionMap.put("read", "Read"); permissionMap.put("write", "Write"); permissionMap.put("execute", "Execute"); permissionMap.put("full_control", "Full Control"); permissionMap.put("delete", "Delete"); permissionMap.put("none", "None"); permissionMap.put("privileged_write", "Privileged Write"); permissionMap.put("read_acl", "Read Acl"); permissionMap.put("write_acl", "Write Acl"); return permissionMap; } } }