1 31 32 package org.opencms.security; 33 34 import org.opencms.file.CmsUser; 35 36 import java.util.HashMap ; 37 import java.util.Iterator ; 38 import java.util.List ; 39 import java.util.RandomAccess ; 40 import java.util.Set ; 41 42 63 public class CmsAccessControlList { 64 65 68 private HashMap m_permissions; 69 70 74 public CmsAccessControlList() { 75 76 m_permissions = new HashMap (); 77 } 78 79 84 public void add(CmsAccessControlEntry entry) { 85 86 CmsPermissionSetCustom p = (CmsPermissionSetCustom)m_permissions.get(entry.getPrincipal()); 87 if (p == null) { 88 p = new CmsPermissionSetCustom(); 89 m_permissions.put(entry.getPrincipal(), p); 90 } 91 p.addPermissions(entry.getPermissions()); 92 } 93 94 99 public Object clone() { 100 101 CmsAccessControlList acl = new CmsAccessControlList(); 102 Iterator i = m_permissions.keySet().iterator(); 103 while (i.hasNext()) { 104 Object key = i.next(); 105 acl.m_permissions.put(key, ((CmsPermissionSetCustom)m_permissions.get(key)).clone()); 106 } 107 return acl; 108 } 109 110 115 public HashMap getPermissionMap() { 116 117 return m_permissions; 118 } 119 120 128 public CmsPermissionSetCustom getPermissions(CmsUser user, List groups) { 129 130 CmsPermissionSetCustom sum = new CmsPermissionSetCustom(); 131 CmsPermissionSet p = (CmsPermissionSet)m_permissions.get(user.getId()); 132 if (p != null) { 133 sum.addPermissions(p); 134 } 135 if (groups != null) { 136 I_CmsPrincipal principal; 137 if (groups instanceof RandomAccess ) { 138 int size = groups.size(); 139 for (int i = 0; i < size; i++) { 140 principal = (I_CmsPrincipal)groups.get(i); 141 p = (CmsPermissionSet)m_permissions.get(principal.getId()); 142 if (p != null) { 143 sum.addPermissions(p); 144 } 145 } 146 } else { 147 Iterator it = groups.iterator(); 148 while (it.hasNext()) { 149 principal = (I_CmsPrincipal)it.next(); 150 p = (CmsPermissionSet)m_permissions.get(principal.getId()); 151 if (p != null) { 152 sum.addPermissions(p); 153 } 154 } 155 } 156 } 157 return sum; 158 } 159 160 167 public CmsPermissionSetCustom getPermissions(I_CmsPrincipal principal) { 168 169 return (CmsPermissionSetCustom)m_permissions.get(principal.getId()); 170 } 171 172 181 public String getPermissionString(CmsUser user, List groups) { 182 183 return getPermissions(user, groups).getPermissionString(); 184 } 185 186 191 public Set getPrincipals() { 192 193 return m_permissions.keySet(); 194 } 195 196 202 public void setAllowedPermissions(CmsAccessControlEntry entry) { 203 204 CmsPermissionSetCustom p = (CmsPermissionSetCustom)m_permissions.get(entry.getPrincipal()); 205 if (p == null) { 206 p = new CmsPermissionSetCustom(); 207 m_permissions.put(entry.getPrincipal(), p); 208 } 209 p.setPermissions(entry.getAllowedPermissions(), p.getDeniedPermissions()); 210 } 211 212 218 public void setDeniedPermissions(CmsAccessControlEntry entry) { 219 220 CmsPermissionSetCustom p = (CmsPermissionSetCustom)m_permissions.get(entry.getPrincipal()); 221 if (p == null) { 222 p = new CmsPermissionSetCustom(); 223 m_permissions.put(entry.getPrincipal(), p); 224 } 225 p.setPermissions(p.getAllowedPermissions(), entry.getDeniedPermissions()); 226 } 227 }
| Popular Tags
|