OpenSim.Region.CoreModules.Avatar.Friends.FriendsModule.LocalGrantRights C# (CSharp) Method

LocalGrantRights() public method

public LocalGrantRights ( UUID userID, UUID friendID, int userFlags, int rights ) : bool
userID UUID
friendID UUID
userFlags int
rights int
return bool
        public bool LocalGrantRights(UUID userID, UUID friendID, int userFlags, int rights)
        {
            IClientAPI friendClient = LocateClientObject(friendID);
            if (friendClient != null)
            {
                bool onlineBitChanged = ((rights ^ userFlags) & (int)FriendRights.CanSeeOnline) != 0;
                if (onlineBitChanged)
                {
                    if ((rights & (int)FriendRights.CanSeeOnline) == 1)
                        friendClient.SendAgentOnline(new UUID[] { new UUID(userID) });
                    else
                        friendClient.SendAgentOffline(new UUID[] { new UUID(userID) });
                }
                else
                {
                    bool canEditObjectsChanged = ((rights ^ userFlags) & (int)FriendRights.CanModifyObjects) != 0;
                    if (canEditObjectsChanged)
                        friendClient.SendChangeUserRights(userID, friendID, rights);

                }

                // Update local cache
                lock (m_Friends)
                {
                    FriendInfo[] friends = GetFriends(friendID);
                    foreach (FriendInfo finfo in friends)
                    {
                        if (finfo.Friend == userID.ToString())
                            finfo.TheirFlags = rights;
                    }
                }

                return true;
            }

            return false;

        }

Usage Example

Example #1
0
        byte[] GrantRights(Dictionary <string, object> request)
        {
            UUID fromID = UUID.Zero;
            UUID toID = UUID.Zero;
            int  rights = 0, userFlags = 0;

            if (!request.ContainsKey("FromID") || !request.ContainsKey("ToID"))
            {
                return(FailureResult());
            }

            if (!UUID.TryParse(request["FromID"].ToString(), out fromID))
            {
                return(FailureResult());
            }

            if (!UUID.TryParse(request["ToID"].ToString(), out toID))
            {
                return(FailureResult());
            }

            if (!Int32.TryParse(request["UserFlags"].ToString(), out userFlags))
            {
                return(FailureResult());
            }

            if (!Int32.TryParse(request["Rights"].ToString(), out rights))
            {
                return(FailureResult());
            }

            if (m_FriendsModule.LocalGrantRights(UUID.Zero, UUID.Zero, userFlags, rights))
            {
                return(SuccessResult());
            }

            return(FailureResult());
        }