1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * This library is free software; you can redistribute it and/or modify it under
5    * the terms of the GNU Lesser General Public License as published by the Free
6    * Software Foundation; either version 2.1 of the License, or (at your option)
7    * any later version.
8    *
9    * This library is distributed in the hope that it will be useful, but WITHOUT
10   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11   * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12   * details.
13   */
14  
15  package com.liferay.mail.util;
16  
17  import com.liferay.mail.model.Filter;
18  import com.liferay.portal.googleapps.GEmailSettingsManager;
19  import com.liferay.portal.googleapps.GNicknameManager;
20  import com.liferay.portal.googleapps.GUserManager;
21  import com.liferay.portal.googleapps.GoogleAppsFactoryUtil;
22  import com.liferay.portal.kernel.log.Log;
23  import com.liferay.portal.kernel.log.LogFactoryUtil;
24  import com.liferay.portal.kernel.util.StringPool;
25  import com.liferay.portal.model.ContactConstants;
26  import com.liferay.portal.model.User;
27  import com.liferay.portal.service.UserLocalServiceUtil;
28  
29  import java.util.List;
30  
31  /**
32   * <a href="GoogleHook.java.html"><b><i>View Source</i></b></a>
33   *
34   * @author Brian Wing Shun Chan
35   */
36  public class GoogleHook implements Hook {
37  
38      public void addForward(
39          long companyId, long userId, List<Filter> filters,
40          List<String> emailAddresses, boolean leaveCopy) {
41      }
42  
43      public void addUser(
44          long companyId, long userId, String password, String firstName,
45          String middleName, String lastName, String emailAddress) {
46  
47          try {
48              String nickname = _getNickname(emailAddress);
49  
50              GUserManager gUserManager = GoogleAppsFactoryUtil.getGUserManager(
51                  companyId);
52  
53              gUserManager.addGUser(userId, password, firstName, lastName);
54  
55              GNicknameManager gNicknameManager =
56                  GoogleAppsFactoryUtil.getGNicknameManager(
57                      companyId);
58  
59              gNicknameManager.addGNickname(userId, nickname);
60  
61              GEmailSettingsManager gEmailSettingsManager =
62                  GoogleAppsFactoryUtil.getGEmailSettingsManager(
63                      companyId);
64  
65              gEmailSettingsManager.addSendAs(
66                  userId,
67                  ContactConstants.getFullName(firstName, middleName, lastName),
68                  emailAddress);
69          }
70          catch (Exception e) {
71              _log.error(e, e);
72          }
73      }
74  
75      public void addVacationMessage(
76          long companyId, long userId, String emailAddress,
77          String vacationMessage) {
78      }
79  
80      public void deleteEmailAddress(long companyId, long userId) {
81          try {
82              User user = UserLocalServiceUtil.getUserById(userId);
83  
84              String nickname = _getNickname(user.getEmailAddress());
85  
86              GNicknameManager gNicknameManager =
87                  GoogleAppsFactoryUtil.getGNicknameManager(
88                      companyId);
89  
90              gNicknameManager.deleteGNickname(nickname);
91          }
92          catch (Exception e) {
93              _log.error(e, e);
94          }
95      }
96  
97      public void deleteUser(long companyId, long userId) {
98          try {
99              GUserManager gUserManager = GoogleAppsFactoryUtil.getGUserManager(
100                 companyId);
101 
102             gUserManager.deleteGUser(userId);
103         }
104         catch (Exception e) {
105             _log.error(e, e);
106         }
107     }
108 
109     public void updateBlocked(
110         long companyId, long userId, List<String> blocked) {
111     }
112 
113     public void updateEmailAddress(
114         long companyId, long userId, String emailAddress) {
115 
116         try {
117             User user = UserLocalServiceUtil.getUserById(userId);
118 
119             deleteEmailAddress(companyId, userId);
120 
121             GNicknameManager gNicknameManager =
122                 GoogleAppsFactoryUtil.getGNicknameManager(
123                     companyId);
124 
125             gNicknameManager.addGNickname(userId, emailAddress);
126 
127             GEmailSettingsManager gEmailSettingsManager =
128                 GoogleAppsFactoryUtil.getGEmailSettingsManager(
129                     companyId);
130 
131             gEmailSettingsManager.addSendAs(
132                 userId, user.getFullName(), emailAddress);
133         }
134         catch (Exception e) {
135             _log.error(e, e);
136         }
137     }
138 
139     public void updatePassword(long companyId, long userId, String password) {
140         try {
141             GUserManager gUserManager = GoogleAppsFactoryUtil.getGUserManager(
142                 companyId);
143 
144             gUserManager.updatePassword(userId, password);
145         }
146         catch (Exception e) {
147             _log.error(e, e);
148         }
149     }
150 
151     private String _getNickname(String emailAddress) {
152         int pos = emailAddress.indexOf(StringPool.AT);
153 
154         return emailAddress.substring(0, pos);
155     }
156 
157     private static Log _log = LogFactoryUtil.getLog(GoogleHook.class);
158 
159 }