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 gNicknameManager.addGNickname(userId, emailAddress);
124
125 GEmailSettingsManager gEmailSettingsManager =
126 GoogleAppsFactoryUtil.getGEmailSettingsManager(companyId);
127
128 gEmailSettingsManager.addSendAs(
129 userId, user.getFullName(), emailAddress);
130 }
131 catch (Exception e) {
132 _log.error(e, e);
133 }
134 }
135
136 public void updatePassword(long companyId, long userId, String password) {
137 try {
138 GUserManager gUserManager = GoogleAppsFactoryUtil.getGUserManager(
139 companyId);
140
141 gUserManager.updatePassword(userId, password);
142 }
143 catch (Exception e) {
144 _log.error(e, e);
145 }
146 }
147
148 private String _getNickname(String emailAddress) {
149 int pos = emailAddress.indexOf(CharPool.AT);
150
151 return emailAddress.substring(0, pos);
152 }
153
154 private static Log _log = LogFactoryUtil.getLog(GoogleHook.class);
155
156 }