private byte[] DeleteFriend(Dictionary <string, object> request) { UUID principalID = UUID.Zero; if (request.ContainsKey("PRINCIPALID")) { UUID.TryParse(request["PRINCIPALID"].ToString(), out principalID); } else { m_log.WarnFormat("[FRIENDS HANDLER]: no principalID in request to delete friend"); } string friend = string.Empty; if (request.ContainsKey("FRIEND")) { friend = request["FRIEND"].ToString(); } bool success = m_FriendsService.Delete(principalID, friend); if (success) { return(SuccessResult()); } else { return(FailureResult()); } }
byte[] DeleteFriendship(Dictionary <string, object> request) { FriendInfo friend = new FriendInfo(request); string secret = string.Empty; if (request.ContainsKey("SECRET")) { secret = request["SECRET"].ToString(); } if (secret == string.Empty) { return(FailureResult()); } List <FriendInfo> finfos = m_FriendsService.GetFriends(friend.PrincipalID); foreach (FriendInfo finfo in finfos) { // We check the secret here if (finfo.Friend.StartsWith(friend.Friend) && finfo.Friend.EndsWith(secret)) { MainConsole.Instance.DebugFormat("[HGFRIENDS HANDLER]: Delete friendship {0} {1}", friend.PrincipalID, friend.Friend); m_FriendsService.Delete(friend.PrincipalID, finfo.Friend); m_FriendsService.Delete(UUID.Parse(finfo.Friend), friend.PrincipalID.ToString()); return(SuccessResult()); } } return(FailureResult()); }
public bool NewFriendship(FriendInfo friend, bool verified) { UUID friendID; string tmp = string.Empty, url = String.Empty, first = String.Empty, last = String.Empty; if (!Util.ParseUniversalUserIdentifier(friend.Friend, out friendID, out url, out first, out last, out tmp)) { return(false); } m_log.DebugFormat("[HGFRIENDS SERVICE]: New friendship {0} {1} ({2})", friend.PrincipalID, friend.Friend, verified); // Does the friendship already exist? FriendInfo[] finfos = m_FriendsService.GetFriends(friend.PrincipalID); foreach (FriendInfo finfo in finfos) { if (finfo.Friend.StartsWith(friendID.ToString())) { return(false); } } // Verified user session. But the user needs to confirm friendship when he gets home if (verified) { return(m_FriendsService.StoreFriend(friend.PrincipalID.ToString(), friend.Friend, 0)); } // Does the reverted friendship exist? meaning that this user initiated the request finfos = m_FriendsService.GetFriends(friendID); bool userInitiatedOffer = false; foreach (FriendInfo finfo in finfos) { if (friend.Friend.StartsWith(finfo.PrincipalID.ToString()) && finfo.Friend.StartsWith(friend.PrincipalID.ToString()) && finfo.TheirFlags == -1) { userInitiatedOffer = true; // Let's delete the existing friendship relations that was stored m_FriendsService.Delete(friendID, finfo.Friend); break; } } if (userInitiatedOffer) { m_FriendsService.StoreFriend(friend.PrincipalID.ToString(), friend.Friend, 1); m_FriendsService.StoreFriend(friend.Friend, friend.PrincipalID.ToString(), 1); // notify the user ForwardToSim("ApproveFriendshipRequest", friendID, Util.UniversalName(first, last, url), "", friend.PrincipalID, ""); return(true); } return(false); }
public bool DeleteFriendship(FriendInfo friend, string secret) { FriendInfo[] finfos = m_FriendsService.GetFriends(friend.PrincipalID); foreach (FriendInfo finfo in finfos) { // We check the secret here. Or if the friendship request was initiated here, and was declined if (finfo.Friend.StartsWith(friend.Friend) && finfo.Friend.EndsWith(secret)) { m_log.DebugFormat("[HGFRIENDS SERVICE]: Delete friendship {0} {1}", friend.PrincipalID, friend.Friend); m_FriendsService.Delete(friend.PrincipalID, finfo.Friend); m_FriendsService.Delete(finfo.Friend, friend.PrincipalID.ToString()); return(true); } } return(false); }
public bool Delete(UUID PrincipalID, string Friend) { List <string> serverURIs = m_registry.RequestModuleInterface <IConfigurationService>().FindValueOf(PrincipalID.ToString(), "FriendsServerURI"); if (serverURIs.Count > 0) //Remote user... or should be { if ((bool)DoRemoteForced(PrincipalID, Friend)) { return(true); } } return(m_localService.Delete(PrincipalID, Friend)); }
public HttpResponseMessage Delete(int groupid, List <UserDto> model) { var result = _friendsService.Delete(groupid, model); return(Request.CreateResponse(HttpStatusCode.OK, result)); }