001
014
015 package com.liferay.mail.util;
016
017 import com.liferay.mail.model.Filter;
018 import com.liferay.portal.kernel.googleapps.GEmailSettingsManager;
019 import com.liferay.portal.kernel.googleapps.GNicknameManager;
020 import com.liferay.portal.kernel.googleapps.GUserManager;
021 import com.liferay.portal.kernel.googleapps.GoogleAppsFactoryUtil;
022 import com.liferay.portal.kernel.log.Log;
023 import com.liferay.portal.kernel.log.LogFactoryUtil;
024 import com.liferay.portal.kernel.util.CharPool;
025 import com.liferay.portal.model.User;
026 import com.liferay.portal.security.auth.FullNameGenerator;
027 import com.liferay.portal.security.auth.FullNameGeneratorFactory;
028 import com.liferay.portal.service.UserLocalServiceUtil;
029
030 import java.util.List;
031
032
035 public class GoogleHook implements Hook {
036
037 public void addForward(
038 long companyId, long userId, List<Filter> filters,
039 List<String> emailAddresses, boolean leaveCopy) {
040 }
041
042 public void addUser(
043 long companyId, long userId, String password, String firstName,
044 String middleName, String lastName, String emailAddress) {
045
046 try {
047 String nickname = _getNickname(emailAddress);
048
049 GUserManager gUserManager = GoogleAppsFactoryUtil.getGUserManager(
050 companyId);
051
052 gUserManager.addGUser(userId, password, firstName, lastName);
053
054 GNicknameManager gNicknameManager =
055 GoogleAppsFactoryUtil.getGNicknameManager(companyId);
056
057 gNicknameManager.addGNickname(userId, nickname);
058
059 GEmailSettingsManager gEmailSettingsManager =
060 GoogleAppsFactoryUtil.getGEmailSettingsManager(companyId);
061
062 FullNameGenerator fullNameGenerator =
063 FullNameGeneratorFactory.getInstance();
064
065 gEmailSettingsManager.addSendAs(
066 userId,
067 fullNameGenerator.getFullName(firstName, middleName, lastName),
068 emailAddress);
069 }
070 catch (Exception e) {
071 _log.error(e, e);
072 }
073 }
074
075 public void addVacationMessage(
076 long companyId, long userId, String emailAddress,
077 String vacationMessage) {
078 }
079
080 public void deleteEmailAddress(long companyId, long userId) {
081 try {
082 User user = UserLocalServiceUtil.getUserById(userId);
083
084 String nickname = _getNickname(user.getEmailAddress());
085
086 GNicknameManager gNicknameManager =
087 GoogleAppsFactoryUtil.getGNicknameManager(companyId);
088
089 gNicknameManager.deleteGNickname(nickname);
090 }
091 catch (Exception e) {
092 _log.error(e, e);
093 }
094 }
095
096 public void deleteUser(long companyId, long userId) {
097 try {
098 GUserManager gUserManager = GoogleAppsFactoryUtil.getGUserManager(
099 companyId);
100
101 gUserManager.deleteGUser(userId);
102 }
103 catch (Exception e) {
104 _log.error(e, e);
105 }
106 }
107
108 public void updateBlocked(
109 long companyId, long userId, List<String> blocked) {
110 }
111
112 public void updateEmailAddress(
113 long companyId, long userId, String emailAddress) {
114
115 try {
116 User user = UserLocalServiceUtil.getUserById(userId);
117
118 deleteEmailAddress(companyId, userId);
119
120 GNicknameManager gNicknameManager =
121 GoogleAppsFactoryUtil.getGNicknameManager(companyId);
122
123 String nickname = _getNickname(emailAddress);
124
125 gNicknameManager.addGNickname(userId, nickname);
126
127 GEmailSettingsManager gEmailSettingsManager =
128 GoogleAppsFactoryUtil.getGEmailSettingsManager(companyId);
129
130 gEmailSettingsManager.addSendAs(
131 userId, user.getFullName(), emailAddress);
132 }
133 catch (Exception e) {
134 _log.error(e, e);
135 }
136 }
137
138 public void updatePassword(long companyId, long userId, String password) {
139 try {
140 GUserManager gUserManager = GoogleAppsFactoryUtil.getGUserManager(
141 companyId);
142
143 gUserManager.updatePassword(userId, password);
144 }
145 catch (Exception e) {
146 _log.error(e, e);
147 }
148 }
149
150 private String _getNickname(String emailAddress) {
151 int pos = emailAddress.indexOf(CharPool.AT);
152
153 return emailAddress.substring(0, pos);
154 }
155
156 private static Log _log = LogFactoryUtil.getLog(GoogleHook.class);
157
158 }