/* * Copyright (C) 2003-2007 eXo Platform SAS. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Affero General Public License * as published by the Free Software Foundation; either version 3 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, see. */ package org.exoplatform.calendar.service.impl; import java.util.List; import org.exoplatform.calendar.service.CalendarService; import org.exoplatform.calendar.service.CalendarSetting; import org.exoplatform.container.xml.InitParams; import org.exoplatform.container.xml.ValuesParam; import org.exoplatform.services.log.ExoLogger; import org.exoplatform.services.log.Log; import org.exoplatform.services.organization.User; import org.exoplatform.services.organization.UserEventListener; /** * Created by The eXo Platform SARL Author : Hung Nguyen Quang * hung.nguyen@exoplatform.com Nov 23, 2007 3:09:21 PM */ public class NewUserListener extends UserEventListener { private static final Log LOG = ExoLogger.getLogger(NewUserListener.class); //Calendar params //final public static String CALENDAR_CATEGORIES = "defaultCalendarCategory".intern() ; //final public static String CALENDAR_NAME = "defaultCalendar".intern() ; final public static String COMA = ",".intern() ; //Calendar Setting params final public static String ST_VIEW_TYPE = "viewType".intern() ; final public static String ST_TIME_INTEVAL = "timeInterval".intern() ; final public static String ST_WEEK_START = "weekStartOn".intern() ; final public static String ST_DATE_FORMAT = "dateFormat".intern() ; final public static String ST_TIME_FORMAT = "timeFormat".intern() ; final public static String ST_LOCALE = "localeId".intern() ; final public static String ST_TIMEZONE = "timezoneId".intern() ; final public static String ST_BASE_URL = "baseUrlForRss".intern() ; final public static String ST_WORKINGTIME = "isShowWorkingTime".intern() ; final public static String ST_TIME_BEGIN = "workingTimeBegin".intern() ; final public static String ST_TIME_END = "workingTimeEnd".intern() ; final public static String ST_USER_IGNORE = "ignoredUsers".intern() ; private CalendarService cservice_; //private String defaultCalendarCategory_; //private String[] defaultCalendar_; private List ignore_users_ ; private CalendarSetting defaultCalendarSetting_ ; final public static String DEFAULT_CALENDAR_CATEGORYID = "defaultCalendarCategoryId"; final public static String DEFAULT_CALENDAR_ID = "defaultCalendarId"; final public static String DEFAULT_CALENDAR_CATEGORYNAME = "defaultCalendarCategoryName"; final public static String DEFAULT_CALENDAR_NAME = "defaultCalendarName"; final public static String DEFAULT_EVENTCATEGORY_ID_ALL = "defaultEventCategoryIdAll"; final public static String DEFAULT_EVENTCATEGORY_ID_MEETING = "defaultEventCategoryIdMeeting"; final public static String DEFAULT_EVENTCATEGORY_ID_CALLS = "defaultEventCategoryIdCalls"; final public static String DEFAULT_EVENTCATEGORY_ID_CLIENTS = "defaultEventCategoryIdClients"; final public static String DEFAULT_EVENTCATEGORY_ID_HOLIDAY = "defaultEventCategoryIdHoliday"; final public static String DEFAULT_EVENTCATEGORY_ID_ANNIVERSARY = "defaultEventCategoryIdAnniversary"; public static String[] defaultEventCategoryId = {DEFAULT_EVENTCATEGORY_ID_ALL, DEFAULT_EVENTCATEGORY_ID_MEETING, DEFAULT_EVENTCATEGORY_ID_CALLS , DEFAULT_EVENTCATEGORY_ID_CLIENTS, DEFAULT_EVENTCATEGORY_ID_HOLIDAY, DEFAULT_EVENTCATEGORY_ID_ANNIVERSARY} ; final public static String DEFAULT_EVENTCATEGORY_NAME_ALL = "defaultEventCategoryNameAll"; final public static String DEFAULT_EVENTCATEGORY_NAME_MEETING = "defaultEventCategoryNameMeeting"; final public static String DEFAULT_EVENTCATEGORY_NAME_CALLS = "defaultEventCategoryNameCalls"; final public static String DEFAULT_EVENTCATEGORY_NAME_CLIENTS = "defaultEventCategoryNameClients"; final public static String DEFAULT_EVENTCATEGORY_NAME_HOLIDAY = "defaultEventCategoryNameHoliday"; final public static String DEFAULT_EVENTCATEGORY_NAME_ANNIVERSARY = "defaultEventCategoryNameAnniversary"; public static String[] defaultEventCategoryName = {DEFAULT_EVENTCATEGORY_NAME_ALL, DEFAULT_EVENTCATEGORY_NAME_MEETING, DEFAULT_EVENTCATEGORY_NAME_CALLS , DEFAULT_EVENTCATEGORY_NAME_CLIENTS, DEFAULT_EVENTCATEGORY_NAME_HOLIDAY, DEFAULT_EVENTCATEGORY_NAME_ANNIVERSARY} ; public NewUserListener() {}; /** * * @param cservice : pass throw create object * @param params : given by config xml * @throws Exception */ @SuppressWarnings("unchecked") public NewUserListener(CalendarService cservice, InitParams params) throws Exception { cservice_ = cservice; defaultCalendarSetting_ = new CalendarSetting() ; if(params.getValueParam(ST_VIEW_TYPE) != null) { defaultCalendarSetting_.setViewType(params.getValueParam(ST_VIEW_TYPE).getValue()) ; } if(params.getValueParam(ST_TIME_INTEVAL) != null) { defaultCalendarSetting_.setTimeInterval(Long.parseLong(params.getValueParam(ST_TIME_INTEVAL).getValue())) ; } if(params.getValueParam(ST_WEEK_START) != null) { defaultCalendarSetting_.setWeekStartOn(params.getValueParam(ST_WEEK_START).getValue()) ; } if(params.getValueParam(ST_DATE_FORMAT) != null) { defaultCalendarSetting_.setDateFormat(params.getValueParam(ST_DATE_FORMAT).getValue()) ; } if(params.getValueParam(ST_TIME_FORMAT) != null) { defaultCalendarSetting_.setTimeFormat(params.getValueParam(ST_TIME_FORMAT).getValue()) ; } if(params.getValueParam(ST_LOCALE) != null) { defaultCalendarSetting_.setLocation(params.getValueParam(ST_LOCALE).getValue()) ; } if(params.getValueParam(ST_TIMEZONE) != null) { defaultCalendarSetting_.setTimeZone(params.getValueParam(ST_TIMEZONE).getValue()) ; } if(params.getValueParam(ST_BASE_URL) != null) { defaultCalendarSetting_.setBaseURL(params.getValueParam(ST_BASE_URL).getValue()) ; } if(params.getValueParam(ST_WORKINGTIME) != null) { defaultCalendarSetting_.setShowWorkingTime(Boolean.parseBoolean(params.getValueParam(ST_WORKINGTIME).getValue())) ; if(defaultCalendarSetting_.isShowWorkingTime()) { if(params.getValueParam(ST_TIME_BEGIN) != null) { defaultCalendarSetting_.setWorkingTimeBegin(params.getValueParam(ST_TIME_BEGIN).getValue()) ; } if(params.getValueParam(ST_TIME_END) != null) { defaultCalendarSetting_.setWorkingTimeEnd(params.getValueParam(ST_TIME_END).getValue()) ; } } } ValuesParam ignoredUsers = params.getValuesParam(ST_USER_IGNORE) ; if(ignoredUsers != null && !ignoredUsers.getValues().isEmpty()) { ignore_users_ = ignoredUsers.getValues() ; } } public void postSave(User user, boolean isNew) throws Exception { if(!isNew) return ; if(ignore_users_ != null && !ignore_users_.isEmpty()) for(String u : ignore_users_) { if (user.getUserName().equalsIgnoreCase(u)) return ; } try { cservice_.initNewUser(user.getUserName(), defaultCalendarSetting_); } catch (Exception e) { LOG.error("Failed to initialize calendar account for " + user.getUserName()); } } }