com.ksyun.ks3.dto.AccessControlPolicy Maven / Gradle / Ivy
package com.ksyun.ks3.dto;
import java.util.Collection;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import com.ksyun.ks3.utils.StringUtils;
/**
* 包含{@link Owner}和{@link AccessControlList}
* @author LIJUNWEI
*
*/
public class AccessControlPolicy extends Ks3Result{
/**
* acl
*/
private AccessControlList accessControlList = new AccessControlList();
private Owner owner;
public Owner getOwner() {
return owner;
}
public void setOwner(Owner owner) {
this.owner = owner;
}
public AccessControlList getAccessControlList() {
return accessControlList;
}
public void setAccessControlList(AccessControlList accessControlList) {
this.accessControlList = accessControlList;
}
public Set getGrants()
{
return this.accessControlList.getGrants();
}
public void setGrants(HashSet grants)
{
this.accessControlList.setGrants(grants);
}
public String toString()
{
return StringUtils.object2string(this);
}
/**
* 从AccessControlPolicy中提取CannedAccessControlList
* @return {@link CannedAccessControlList}
*/
public CannedAccessControlList getCannedAccessControlList(){
final Collection allUsersPermissions = new LinkedHashSet();
for (final Grant grant : this.getGrants()) {
if (GranteeUri.AllUsers.equals(grant.getGrantee())) {
allUsersPermissions.add(grant.getPermission());
}
}
final boolean read = allUsersPermissions.contains(Permission.Read);
final boolean write = allUsersPermissions.contains(Permission.Write);
if (read && write) {
return CannedAccessControlList.PublicReadWrite;
} else if (read) {
return CannedAccessControlList.PublicRead;
} else {
return CannedAccessControlList.Private;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy