1 50 package com.ivata.groupware.business.addressbook.person.group.right; 51 52 import java.io.Serializable ; 53 import java.util.List ; 54 55 import com.ivata.groupware.business.addressbook.AddressBook; 56 import com.ivata.groupware.business.addressbook.person.group.GroupConstants; 57 import com.ivata.groupware.business.addressbook.person.group.GroupDO; 58 import com.ivata.mask.persistence.right.PersistenceRights; 59 import com.ivata.mask.valueobject.ValueObject; 60 61 import com.ivata.groupware.admin.security.server.SecurityServer; 62 import com.ivata.groupware.admin.security.server.SecuritySession; 63 import com.ivata.mask.util.SystemException; 64 65 77 78 public class GroupRights implements PersistenceRights, Serializable { 79 private AddressBook addressBook; 80 private SecurityServer securityServer; 81 public GroupRights (AddressBook addressBook, SecurityServer securityServer) { 82 this.addressBook = addressBook; 83 this.securityServer = securityServer; 84 } 85 91 public boolean canAdd(String userName, 92 Class valueObjectClassParam) { 93 return true; 94 } 95 96 105 public boolean canAmend(String userNameParam, 106 ValueObject valueObjectParam) { 107 return true; 108 } 109 110 124 public boolean canAmend(String userNameParam, 125 ValueObject valueObjectParam, String fieldNameParam) { 126 if (valueObjectParam instanceof GroupDO) { 129 GroupDO group = (GroupDO)valueObjectParam; 130 GroupDO parent = group.getParent(); 131 if ((parent != null) 133 && "name".equals(fieldNameParam) 134 && (GroupConstants.equals( 135 parent.getId(), 136 GroupConstants.ADDRESS_BOOK_PRIVATE))) { 137 return false; 138 } 139 } 140 141 return true; 143 } 144 145 152 public boolean canRemove(String userNameParam, 153 ValueObject valueObjectParam) { 154 if (valueObjectParam instanceof GroupDO) { 156 GroupDO group = (GroupDO)valueObjectParam; 157 if (GroupConstants.equals( 159 group.getId(), 160 GroupConstants.ADDRESS_BOOK_DEFAULT)) { 161 return false; 162 } 163 GroupDO parent = group.getParent(); 164 if ((parent == null) 166 || (GroupConstants.equals( 167 parent.getId(), 168 GroupConstants.ADDRESS_BOOK_PRIVATE))) { 169 return false; 170 } 171 if ((group.getPeople().size() > 0) 173 || (group.getUsers().size() > 0)) { 174 return false; 175 } 176 try { 178 SecuritySession guestSession = securityServer.loginGuest(); 179 List children = addressBook.findGroupsByParent(guestSession, 180 group.getId()); 181 if ((children != null) 182 && (children.size() > 0)) { 183 return false; 184 } 185 } catch (SystemException e) { 186 throw new RuntimeException (e); 187 } 188 } 189 return true; 191 } 192 } 193 | Popular Tags |