1 3 133 package com.ivata.groupware.business.addressbook.struts; 134 135 import javax.servlet.http.HttpServletRequest ; 136 import javax.servlet.http.HttpServletResponse ; 137 import javax.servlet.http.HttpSession ; 138 139 import org.apache.struts.action.ActionErrors; 140 import org.apache.struts.action.ActionForm; 141 import org.apache.struts.action.ActionMapping; 142 import org.picocontainer.PicoContainer; 143 144 import com.ivata.groupware.admin.security.Security; 145 import com.ivata.groupware.admin.security.server.SecuritySession; 146 import com.ivata.groupware.admin.security.user.UserDO; 147 import com.ivata.groupware.admin.setting.Settings; 148 import com.ivata.groupware.admin.setting.SettingsInitializationException; 149 import com.ivata.groupware.business.addressbook.AddressBook; 150 import com.ivata.groupware.business.addressbook.person.PersonDO; 151 import com.ivata.groupware.business.addressbook.person.employee.EmployeeDO; 152 import com.ivata.groupware.business.addressbook.right.AddressBookRights; 153 import com.ivata.groupware.container.PicoContainerFactory; 154 import com.ivata.groupware.util.SettingDateFormatter; 155 import com.ivata.mask.MaskFactory; 156 import com.ivata.mask.util.SystemException; 157 import com.ivata.mask.web.format.DateFormatterConstants; 158 import com.ivata.mask.web.struts.MaskAction; 159 import com.ivata.mask.web.struts.MaskAuthenticator; 160 161 162 174 public class FindPersonAction extends MaskAction { 175 178 private AddressBook addressBook; 179 182 private AddressBookRights addressBookRights; 183 186 private SettingDateFormatter dateFormatter; 187 190 private Settings settings; 191 private Security security; 192 193 204 public FindPersonAction(AddressBook addressBook, AddressBookRights 205 addressBookRights, SettingDateFormatter dateFormatter, 206 Security security, Settings settings, 207 MaskFactory maskFactory, MaskAuthenticator authenticator) { 208 super(maskFactory, authenticator); 209 this.addressBook = addressBook; 210 this.addressBookRights = addressBookRights; 211 this.dateFormatter = dateFormatter; 212 this.security = security; 213 this.settings = settings; 214 } 215 216 239 public String execute(final ActionMapping mapping, 240 final ActionErrors errors, 241 final ActionForm form, 242 final HttpServletRequest request, 243 final HttpServletResponse response, 244 final HttpSession session) throws SystemException { 245 session.removeAttribute("personTab_activeTab"); 247 String id = request.getParameter("id"); 248 249 if (id == null) { 250 throw new SystemException("ERROR in FindPersonAction: id is null"); 251 } 252 SecuritySession securitySession = (SecuritySession) session.getAttribute("securitySession"); 253 PersonDO person = addressBook.findPersonByPrimaryKey(securitySession, id); 254 PicoContainer container = securitySession.getContainer(); 255 PersonForm personForm = (PersonForm) 256 PicoContainerFactory.getInstance().instantiateOrOverride(container, 257 PersonForm.class); 258 personForm.clear(); 259 personForm.setPerson(person); 260 261 personForm.setReadOnly(!addressBookRights.canAmendInGroup(securitySession, 263 person.getGroup().getAddressBook())); 264 String userName = securitySession.getUser().getName(); 265 if (personForm.getReadOnly() && person.getCreatedBy().equals(securitySession.getUser())) { 266 personForm.setReadOnly(false); 267 } 268 personForm.setCanRemove(addressBookRights.canRemoveFromGroup(securitySession, 270 person.getGroup().getAddressBook())); 271 272 java.util.Date birthDate = person.getDateOfBirth(); 274 if (birthDate != null) { 275 try { 276 dateFormatter.setUserName(userName); 277 dateFormatter.setDateFormat(DateFormatterConstants.DATE_INPUT_DISPLAY); 278 dateFormatter.setDateTimeText("{0}"); 279 280 personForm.setDateOfBirthString(dateFormatter.format(birthDate)); 281 } catch (SettingsInitializationException e) { 282 throw new RuntimeException (e); 283 } 284 } 285 286 session.setAttribute("addressBookPersonForm", personForm); 287 288 personForm.setEmployee(person.getEmployee() != null); 290 if (!personForm.isEmployee()) { 293 person.setEmployee(new EmployeeDO()); 294 } 295 UserDO userSet = person.getUser(); 297 298 personForm.setUserName(userSet == null ? null : userSet.getName()); 299 personForm.setEnableUser((userSet != null) 300 && security.isUserEnabled(securitySession, userSet.getName())); 301 306 personForm.setTitleKey("person.title.amend"); 311 return "addressBookPersonAction"; 313 } 314 } 315 | Popular Tags |