You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2013/08/07 21:05:36 UTC

svn commit: r1511437 - in /openmeetings/trunk/singlewebapp/src/org/apache/openmeetings: data/user/dao/ remote/ servlet/outputhandler/ web/app/ web/user/profile/ web/util/

Author: solomax
Date: Wed Aug  7 19:05:35 2013
New Revision: 1511437

URL: http://svn.apache.org/r1511437
Log:
[OPENMEETINGS-615] all actions are implemented

Added:
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/ContactsHelper.java
Modified:
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/UserContactsDao.java
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/UserInfoDialog.java
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/UserSearchPanel.java

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/UserContactsDao.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/UserContactsDao.java?rev=1511437&r1=1511436&r2=1511437&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/UserContactsDao.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/user/dao/UserContactsDao.java Wed Aug  7 19:05:35 2013
@@ -208,10 +208,10 @@ public class UserContactsDao {
 		return null;
 	}
 	
-	public UserContact getUserContacts(Long userContactId) {
+	public UserContact get(Long id) {
 		try {
 			TypedQuery<UserContact> query = em.createNamedQuery("getUserContactsById", UserContact.class); 
-			query.setParameter("userContactId", userContactId);
+			query.setParameter("userContactId", id);
 			UserContact userContacts = null;
 			try {
 				userContacts = query.getSingleResult();
@@ -237,7 +237,7 @@ public class UserContactsDao {
 	public Long updateContactStatus(Long userContactId, Boolean pending) {
 		try {
 			
-			UserContact userContacts = this.getUserContacts(userContactId);
+			UserContact userContacts = this.get(userContactId);
 			
 			if (userContacts == null) {
 				return null;

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java?rev=1511437&r1=1511436&r2=1511437&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java Wed Aug  7 19:05:35 2013
@@ -814,7 +814,7 @@ public class UserService {
 			// users only
 			if (authLevelUtil.checkUserLevel(user_level)) {
 
-				UserContact userContacts = userContactsDao.getUserContacts(userContactId);
+				UserContact userContacts = userContactsDao.get(userContactId);
 
 				if (userContacts == null) {
 					return -46L;
@@ -840,7 +840,7 @@ public class UserService {
 			if (authLevelUtil.checkUserLevel(user_level)) {
 
 				UserContact userContacts = userContactsDao
-						.getUserContacts(userContactId);
+						.get(userContactId);
 
 				if (userContacts == null) {
 					return -49;
@@ -863,7 +863,7 @@ public class UserService {
 			// users only
 			if (authLevelUtil.checkUserLevel(user_level)) {
 
-				UserContact userContacts = userContactsDao.getUserContacts(userContactId);
+				UserContact userContacts = userContactsDao.get(userContactId);
 
 				if (userContacts == null) {
 					return -46L;
@@ -878,7 +878,7 @@ public class UserService {
 					userContactsDao.updateContactStatus(userContactId, false);
 
 					userContacts = userContactsDao
-							.getUserContacts(userContactId);
+							.get(userContactId);
 
 					userContactsDao.addUserContact(userContacts.getOwner()
 							.getUser_id(), users_id, false, "");
@@ -1602,7 +1602,7 @@ public class UserService {
 			if (authLevelUtil.checkUserLevel(user_level)) {
 
 				UserContact userContacts = userContactsDao
-						.getUserContacts(userContactId);
+						.get(userContactId);
 
 				userContacts.setShareCalendar(shareCalendar);
 

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java?rev=1511437&r1=1511436&r2=1511437&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/servlet/outputhandler/BackupImportController.java Wed Aug  7 19:05:35 2013
@@ -494,7 +494,7 @@ public class BackupImportController exte
 			List<UserContact> list = readList(serializer, f, "userContacts.xml", "usercontacts", UserContact.class, true);
 			for (UserContact uc : list) {
 				Long ucId = uc.getUserContactId();
-				UserContact storedUC = userContactsDao.getUserContacts(ucId);
+				UserContact storedUC = userContactsDao.get(ucId);
 
 				if (storedUC == null && uc.getContact() != null && uc.getContact().getUser_id() != null) {
 					uc.setUserContactId(0);

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java?rev=1511437&r1=1511436&r2=1511437&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/app/WebSession.java Wed Aug  7 19:05:35 2013
@@ -29,7 +29,6 @@ import static org.apache.openmeetings.we
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
-import java.util.Date;
 import java.util.List;
 import java.util.Locale;
 import java.util.TimeZone;
@@ -41,9 +40,7 @@ import org.apache.openmeetings.data.basi
 import org.apache.openmeetings.data.basic.dao.ConfigurationDao;
 import org.apache.openmeetings.data.basic.dao.OmTimeZoneDao;
 import org.apache.openmeetings.data.user.UserManager;
-import org.apache.openmeetings.data.user.dao.PrivateMessagesDao;
 import org.apache.openmeetings.data.user.dao.StateDao;
-import org.apache.openmeetings.data.user.dao.UserContactsDao;
 import org.apache.openmeetings.data.user.dao.UsersDao;
 import org.apache.openmeetings.ldap.LdapLoginManagement;
 import org.apache.openmeetings.persistence.beans.basic.OmTimeZone;
@@ -51,10 +48,6 @@ import org.apache.openmeetings.persisten
 import org.apache.openmeetings.persistence.beans.lang.FieldLanguage;
 import org.apache.openmeetings.persistence.beans.user.State;
 import org.apache.openmeetings.persistence.beans.user.User;
-import org.apache.openmeetings.templates.RequestContactTemplate;
-import org.apache.openmeetings.utils.crypt.ManageCryptStyle;
-import org.apache.openmeetings.utils.mail.MailHandler;
-import org.apache.openmeetings.utils.math.CalendarPatterns;
 import org.apache.openmeetings.web.user.dashboard.PrivateRoomsWidgetDescriptor;
 import org.apache.openmeetings.web.user.dashboard.RssWidgetDescriptor;
 import org.apache.openmeetings.web.user.dashboard.StartWidgetDescriptor;
@@ -293,54 +286,4 @@ public class WebSession extends Abstract
 			dashboardContext.getDashboardPersiter().save(dashboard);
 		}
 	}
-
-	public static long addUserToContactList(long userIdToAdd) {
-		//FIXME !!!!! modify links
-		String hash = getBean(ManageCryptStyle.class).getInstanceOfCrypt()
-			.createPassPhrase(CalendarPatterns.getDateWithTimeByMiliSeconds(new Date()));
-
-		Long userContactId = getBean(UserContactsDao.class).addUserContact(userIdToAdd, getUserId(), true, hash);
-
-		User user = getBean(UsersDao.class).get(getUserId());
-		User userToAdd = getBean(UsersDao.class).get(userIdToAdd);
-
-		String fValue1192 = getString(1192);
-		String fValue1193 = getString(1193);
-		String fValue1190 = getString(1190);
-		String fValue1191 = getString(1191);
-		String fValue1196 = getString(1196);
-
-		StringBuilder message = new StringBuilder();
-		message.append(fValue1192).append(" ")
-			.append(userToAdd.getFirstname()).append(" ")
-			.append(userToAdd.getLastname()).append("<br/><br/>")
-			.append(user.getFirstname()).append(" ").append(user.getLastname())
-			.append(" ").append(fValue1193).append("<br/>")
-			.append(getString(1194)).append("<br/>");
-
-		getBean(PrivateMessagesDao.class).addPrivateMessage(
-			user.getFirstname() + " " + user.getLastname() + " " + fValue1193
-			, message.toString(), 0L, user, userToAdd, userToAdd, false, null
-			, true, userContactId, userToAdd.getAdresses().getEmail());
-
-		String link = get().getBaseUrl() + "?cuser=" + hash;
-
-		String accept_link = link + "&tAccept=yes";
-		String deny_link = link + "&tAccept=no";
-
-		String aLinkHTML = "<a href='" + accept_link + "'>" + fValue1190 + "</a><br/>";
-		String denyLinkHTML = "<a href='" + deny_link + "'>" + fValue1191 + "</a><br/>";
-		String profileLinkHTML = "<a href='" + link + "'>" + fValue1196 + "</a><br/>";
-
-		String template = getBean(RequestContactTemplate.class)
-				.getRequestContactTemplate(message.toString(), aLinkHTML, denyLinkHTML, profileLinkHTML);
-
-		if (userToAdd.getAdresses() != null) {
-			getBean(MailHandler.class).send(userToAdd.getAdresses().getEmail(),
-					user.getFirstname() + " " + user.getLastname() + " " + fValue1193, template);
-		}
-
-		return userContactId;
-	}
-	
 }

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html?rev=1511437&r1=1511436&r2=1511437&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.html Wed Aug  7 19:05:35 2013
@@ -83,7 +83,7 @@
 					<div style="background-color: white;min-height: 300px;" wicket:id="body"></div>
 				</div>
 			</td>
-			<td class="side right">
+			<td class="side right" wicket:id="contacts">
 				<div><b><wicket:ommessage key="1189"/>&nbsp;(<span wicket:id="pendingContacts"></span>)</b></div>
 				<div><b><wicket:ommessage key="1188"/>&nbsp;(<span wicket:id="allContacts"></span>)</b></div>
 				<table style="width: 100%">

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java?rev=1511437&r1=1511436&r2=1511437&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java Wed Aug  7 19:05:35 2013
@@ -44,6 +44,7 @@ import org.apache.openmeetings.web.commo
 import org.apache.openmeetings.web.data.DataViewContainer;
 import org.apache.openmeetings.web.data.OmOrderByBorder;
 import org.apache.openmeetings.web.data.SearchableDataProvider;
+import org.apache.openmeetings.web.util.ContactsHelper;
 import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.Component;
 import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
@@ -98,6 +99,7 @@ public class MessagesContactsPanel exten
 	private final WebMarkupContainer trash = new WebMarkupContainer("trash");
 	private final WebMarkupContainer selectedMessage = new WebMarkupContainer("selectedMessage");
 	private final WebMarkupContainer buttons = new WebMarkupContainer("buttons");
+	private final WebMarkupContainer contacts = new WebMarkupContainer("contacts");
 	private final MessageDialog newMessage;
 	private final DataViewContainer<PrivateMessage> dataContainer;
 	private final Set<Long> selectedMessages = new HashSet<Long>();
@@ -231,6 +233,14 @@ public class MessagesContactsPanel exten
 		moveDropDown.setChoices(list);
 	}
 	
+	private void updateContacts(AjaxRequestTarget target) {
+		pendingContacts.setDefaultModelObject(getBean(UserContactsDao.class).getContactRequestsByUserAndStatus(getUserId(), true).size());
+		allContacts.setDefaultModelObject(getBean(UserContactsDao.class).getContactsByUserAndStatus(getUserId(), false).size());
+		if (target != null) {
+			target.add(contacts);
+		}
+	}
+	
 	@SuppressWarnings("unchecked")
 	public MessagesContactsPanel(String id) {
 		super(id);
@@ -441,10 +451,6 @@ public class MessagesContactsPanel exten
 		add(navigator);
 		
 		add(unread.setOutputMarkupId(true));
-		//TODO add method to handle this
-		pendingContacts.setDefaultModelObject(getBean(UserContactsDao.class).getContactRequestsByUserAndStatus(getUserId(), true).size());
-		allContacts.setDefaultModelObject(getBean(UserContactsDao.class).getContactsByUserAndStatus(getUserId(), false).size());
-		add(pendingContacts.setOutputMarkupId(true), allContacts.setOutputMarkupId(true));
 		
 		add(buttons.setOutputMarkupId(true));
 		buttons.add(toInboxBtn.add(new AjaxEventBehavior("click") {
@@ -565,6 +571,7 @@ public class MessagesContactsPanel exten
 			@Override
 			protected void populateItem(Item<UserContact> item) {
 				UserContact uc = item.getModelObject();
+				final long contactId = uc.getUserContactId();
 				final long userId = uc.getOwner().getUser_id();
 				if (uc.getPending()) {
 					item.add(AttributeModifier.append("class", "unread"));
@@ -575,6 +582,8 @@ public class MessagesContactsPanel exten
 
 					@Override
 					protected void onEvent(AjaxRequestTarget target) {
+						ContactsHelper.acceptUserContact(contactId);
+						updateContacts(target);
 					}
 				}).setVisible(uc.getPending()));
 				item.add(new WebMarkupContainer("decline").add(new AjaxEventBehavior("onclick") {
@@ -582,6 +591,8 @@ public class MessagesContactsPanel exten
 
 					@Override
 					protected void onEvent(AjaxRequestTarget target) {
+						getBean(UserContactsDao.class).deleteUserContact(contactId);
+						updateContacts(target);
 					}
 				}).setVisible(uc.getPending()));
 				item.add(new WebMarkupContainer("view").add(new AjaxEventBehavior("onclick") {
@@ -605,11 +616,14 @@ public class MessagesContactsPanel exten
 
 					@Override
 					protected void onEvent(AjaxRequestTarget target) {
+						getBean(UserContactsDao.class).deleteUserContact(contactId);
+						updateContacts(target);
 					}
 				}).setVisible(!uc.getPending()));
 			}
 		};
-		add(d, dw);//TODO update
+		updateContacts(null);
+		add(d, contacts.add(dw, pendingContacts, allContacts).setOutputMarkupId(true));//TODO update
 		
 		//hack to add FixedHeaderTable after Tabs.
 		add(new AbstractDefaultAjaxBehavior() {
@@ -628,4 +642,5 @@ public class MessagesContactsPanel exten
 			}
 		});
 	}
+
 }

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/UserInfoDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/UserInfoDialog.java?rev=1511437&r1=1511436&r2=1511437&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/UserInfoDialog.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/UserInfoDialog.java Wed Aug  7 19:05:35 2013
@@ -26,6 +26,7 @@ import java.util.List;
 
 import org.apache.openmeetings.data.user.dao.UserContactsDao;
 import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.util.ContactsHelper;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 
@@ -76,7 +77,7 @@ public class UserInfoDialog extends Abst
 		if (button.equals(message)) {
 			newMessage.reset().open(target, userId);
 		} else if (button.equals(contacts)) {
-			WebSession.addUserToContactList(userId);
+			ContactsHelper.addUserToContactList(userId);
 		}
 	}
 }

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/UserSearchPanel.java?rev=1511437&r1=1511436&r2=1511437&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/UserSearchPanel.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/user/profile/UserSearchPanel.java Wed Aug  7 19:05:35 2013
@@ -30,9 +30,9 @@ import org.apache.openmeetings.data.user
 import org.apache.openmeetings.data.user.dao.UserContactsDao;
 import org.apache.openmeetings.persistence.beans.user.PrivateMessage;
 import org.apache.openmeetings.persistence.beans.user.User;
-import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.PagingNavigatorPanel;
 import org.apache.openmeetings.web.common.UserPanel;
+import org.apache.openmeetings.web.util.ContactsHelper;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.form.AjaxFormSubmitBehavior;
@@ -144,7 +144,7 @@ public class UserSearchPanel extends Use
 
 					@Override
 					protected void onEvent(AjaxRequestTarget target) {
-						WebSession.addUserToContactList(userId);
+						ContactsHelper.addUserToContactList(userId);
 						refresh(target);
 					}
 				}).setVisible(userId != getUserId() && 0 == contactsDao.checkUserContacts(userId, getUserId())));

Added: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/ContactsHelper.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/ContactsHelper.java?rev=1511437&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/ContactsHelper.java (added)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/util/ContactsHelper.java Wed Aug  7 19:05:35 2013
@@ -0,0 +1,124 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.util;
+
+import static org.apache.openmeetings.web.app.Application.getBean;
+import static org.apache.openmeetings.web.app.WebSession.getUserId;
+import static org.apache.openmeetings.web.util.OmUrlFragment.PROFILE_MESSAGES;
+
+import java.util.Date;
+
+import org.apache.openmeetings.data.user.dao.PrivateMessagesDao;
+import org.apache.openmeetings.data.user.dao.UserContactsDao;
+import org.apache.openmeetings.data.user.dao.UsersDao;
+import org.apache.openmeetings.persistence.beans.user.User;
+import org.apache.openmeetings.persistence.beans.user.UserContact;
+import org.apache.openmeetings.templates.RequestContactConfirmTemplate;
+import org.apache.openmeetings.templates.RequestContactTemplate;
+import org.apache.openmeetings.utils.crypt.ManageCryptStyle;
+import org.apache.openmeetings.utils.mail.MailHandler;
+import org.apache.openmeetings.utils.math.CalendarPatterns;
+import org.apache.openmeetings.web.app.WebSession;
+
+public class ContactsHelper {
+	public static long addUserToContactList(long userIdToAdd) {
+		String hash = getBean(ManageCryptStyle.class).getInstanceOfCrypt()
+			.createPassPhrase(CalendarPatterns.getDateWithTimeByMiliSeconds(new Date()));
+
+		Long userContactId = getBean(UserContactsDao.class).addUserContact(userIdToAdd, getUserId(), true, hash);
+
+		User user = getBean(UsersDao.class).get(getUserId());
+		User userToAdd = getBean(UsersDao.class).get(userIdToAdd);
+
+		String fValue1192 = WebSession.getString(1192);
+		String fValue1193 = WebSession.getString(1193);
+		String fValue1196 = WebSession.getString(1196);
+
+		StringBuilder message = new StringBuilder();
+		message.append(fValue1192).append(" ")
+			.append(userToAdd.getFirstname()).append(" ")
+			.append(userToAdd.getLastname()).append("<br/><br/>")
+			.append(user.getFirstname()).append(" ").append(user.getLastname())
+			.append(" ").append(fValue1193).append("<br/>")
+			.append(WebSession.getString(1194)).append("<br/>");
+
+		getBean(PrivateMessagesDao.class).addPrivateMessage(
+			user.getFirstname() + " " + user.getLastname() + " " + fValue1193
+			, message.toString(), 0L, user, userToAdd, userToAdd, false, null
+			, true, userContactId, userToAdd.getAdresses().getEmail());
+
+		String link = WebSession.get().getBaseUrl() + "#" + PROFILE_MESSAGES.getArea().name() + "/" + PROFILE_MESSAGES.getType();
+
+		String profileLinkHTML = "<a href='" + link + "'>" + fValue1196 + "</a><br/>";
+
+		String template = getBean(RequestContactTemplate.class)
+				.getRequestContactTemplate(message.toString(), "", "", profileLinkHTML);
+
+		if (userToAdd.getAdresses() != null) {
+			getBean(MailHandler.class).send(userToAdd.getAdresses().getEmail(),
+					user.getFirstname() + " " + user.getLastname() + " " + fValue1193, template);
+		}
+
+		return userContactId;
+	}
+
+	public static Long acceptUserContact(long userContactId) {
+		UserContactsDao dao = getBean(UserContactsDao.class);
+		UserContact contact = dao.get(userContactId);
+
+		if (contact == null) {
+			return -46L;
+		}
+
+		if (!contact.getPending()) {
+			return -47L;
+		}
+
+		dao.updateContactStatus(userContactId, false);
+
+		contact = dao.get(userContactId);
+
+		dao.addUserContact(contact.getOwner().getUser_id(), getUserId(), false, "");
+
+		User user = contact.getOwner();
+
+		if (user.getAdresses() != null) {
+
+			String fValue1192 = WebSession.getString(1192);
+			String fValue1198 = WebSession.getString(1198);
+
+			StringBuilder message = new StringBuilder();
+			message.append(fValue1192).append(" ").append(user.getFirstname()).append(" ")
+				.append(user.getLastname()).append("<br/><br/>")
+				.append(contact.getContact().getFirstname()).append(" ")
+				.append(contact.getContact().getLastname()).append(" ").append(fValue1198);
+
+			String template = getBean(RequestContactConfirmTemplate.class).getRequestContactTemplate(message.toString());
+
+			getBean(PrivateMessagesDao.class).addPrivateMessage(
+					user.getFirstname() + " " + user.getLastname() + " " + fValue1198, message.toString(),
+					0L, contact.getContact(), user, user, false, null, false, 0L, user.getAdresses().getEmail());
+
+			getBean(MailHandler.class).send(user.getAdresses().getEmail(),
+					contact.getContact().getFirstname() + " " + contact.getContact().getLastname() + " " + fValue1198, template);
+
+		}
+		return userContactId;
+	}
+}