1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * The contents of this file are subject to the terms of the Liferay Enterprise
5    * Subscription License ("License"). You may not use this file except in
6    * compliance with the License. You can obtain a copy of the License by
7    * contacting Liferay, Inc. See the License for the specific language governing
8    * permissions and limitations under the License, including but not limited to
9    * distribution rights of the Software.
10   *
11   *
12   *
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.CharPool;
25  import com.liferay.portal.model.User;
26  import com.liferay.portal.security.auth.FullNameGenerator;
27  import com.liferay.portal.security.auth.FullNameGeneratorFactory;
28  import com.liferay.portal.service.UserLocalServiceUtil;
29  
30  import java.util.List;
31  
32  /**
33   * <a href="GoogleHook.java.html"><b><i>View Source</i></b></a>
34   *
35   * @author Brian Wing Shun Chan
36   */
37  public class GoogleHook implements Hook {
38  
39      public void addForward(
40          long companyId, long userId, List<Filter> filters,
41          List<String> emailAddresses, boolean leaveCopy) {
42      }
43  
44      public void addUser(
45          long companyId, long userId, String password, String firstName,
46          String middleName, String lastName, String emailAddress) {
47  
48          try {
49              String nickname = _getNickname(emailAddress);
50  
51              GUserManager gUserManager = GoogleAppsFactoryUtil.getGUserManager(
52                  companyId);
53  
54              gUserManager.addGUser(userId, password, firstName, lastName);
55  
56              GNicknameManager gNicknameManager =
57                  GoogleAppsFactoryUtil.getGNicknameManager(
58                      companyId);
59  
60              gNicknameManager.addGNickname(userId, nickname);
61  
62              GEmailSettingsManager gEmailSettingsManager =
63                  GoogleAppsFactoryUtil.getGEmailSettingsManager(
64                      companyId);
65  
66              FullNameGenerator fullNameGenerator =
67                  FullNameGeneratorFactory.getInstance();
68  
69              gEmailSettingsManager.addSendAs(
70                  userId,
71                  fullNameGenerator.getFullName(firstName, middleName, lastName),
72                  emailAddress);
73          }
74          catch (Exception e) {
75              _log.error(e, e);
76          }
77      }
78  
79      public void addVacationMessage(
80          long companyId, long userId, String emailAddress,
81          String vacationMessage) {
82      }
83  
84      public void deleteEmailAddress(long companyId, long userId) {
85          try {
86              User user = UserLocalServiceUtil.getUserById(userId);
87  
88              String nickname = _getNickname(user.getEmailAddress());
89  
90              GNicknameManager gNicknameManager =
91                  GoogleAppsFactoryUtil.getGNicknameManager(
92                      companyId);
93  
94              gNicknameManager.deleteGNickname(nickname);
95          }
96          catch (Exception e) {
97              _log.error(e, e);
98          }
99      }
100 
101     public void deleteUser(long companyId, long userId) {
102         try {
103             GUserManager gUserManager = GoogleAppsFactoryUtil.getGUserManager(
104                 companyId);
105 
106             gUserManager.deleteGUser(userId);
107         }
108         catch (Exception e) {
109             _log.error(e, e);
110         }
111     }
112 
113     public void updateBlocked(
114         long companyId, long userId, List<String> blocked) {
115     }
116 
117     public void updateEmailAddress(
118         long companyId, long userId, String emailAddress) {
119 
120         try {
121             User user = UserLocalServiceUtil.getUserById(userId);
122 
123             deleteEmailAddress(companyId, userId);
124 
125             GNicknameManager gNicknameManager =
126                 GoogleAppsFactoryUtil.getGNicknameManager(
127                     companyId);
128 
129             gNicknameManager.addGNickname(userId, emailAddress);
130 
131             GEmailSettingsManager gEmailSettingsManager =
132                 GoogleAppsFactoryUtil.getGEmailSettingsManager(
133                     companyId);
134 
135             gEmailSettingsManager.addSendAs(
136                 userId, user.getFullName(), emailAddress);
137         }
138         catch (Exception e) {
139             _log.error(e, e);
140         }
141     }
142 
143     public void updatePassword(long companyId, long userId, String password) {
144         try {
145             GUserManager gUserManager = GoogleAppsFactoryUtil.getGUserManager(
146                 companyId);
147 
148             gUserManager.updatePassword(userId, password);
149         }
150         catch (Exception e) {
151             _log.error(e, e);
152         }
153     }
154 
155     private String _getNickname(String emailAddress) {
156         int pos = emailAddress.indexOf(CharPool.AT);
157 
158         return emailAddress.substring(0, pos);
159     }
160 
161     private static Log _log = LogFactoryUtil.getLog(GoogleHook.class);
162 
163 }