Ejemplo n.º 1
0
 public WebProfile()
 {
     Contacts = new ProfileContacts();
     Address = new ProfileAddress();
     Personal = new ProfilePersonal();
     Preferences = new ProfilePreferences();
 }
Ejemplo n.º 2
0
 bool IUserPreferencesInterface.TryGetValue(UUI user, out ProfilePreferences prefs)
 {
     using (var conn = new MySqlConnection(m_ConnectionString))
     {
         conn.Open();
         using (var cmd = new MySqlCommand("SELECT * FROM usersettings where useruuid = @uuid", conn))
         {
             cmd.Parameters.AddParameter("@uuid", user.ID);
             using (MySqlDataReader reader = cmd.ExecuteReader())
             {
                 if (reader.Read())
                 {
                     prefs = new ProfilePreferences()
                     {
                         User       = user,
                         IMviaEmail = reader.GetBool("imviaemail"),
                         Visible    = reader.GetBool("visible")
                     };
                     return(true);
                 }
                 else
                 {
                     prefs = new ProfilePreferences()
                     {
                         User       = user,
                         IMviaEmail = false,
                         Visible    = false
                     };
                     return(true);
                 }
             }
         }
     }
 }
Ejemplo n.º 3
0
 public WebProfile()
 {
     Contacts    = new ProfileContacts();
     Address     = new ProfileAddress();
     Personal    = new ProfilePersonal();
     Preferences = new ProfilePreferences();
 }
Ejemplo n.º 4
0
 bool IUserPreferencesInterface.TryGetValue(UGUI user, out ProfilePreferences prefs)
 {
     using (var conn = new NpgsqlConnection(m_ConnectionString))
     {
         conn.Open();
         using (var cmd = new NpgsqlCommand("SELECT * FROM usersettings where \"useruuid\" = @uuid LIMIT 1", conn))
         {
             cmd.Parameters.AddParameter("@uuid", user.ID);
             using (NpgsqlDataReader reader = cmd.ExecuteReader())
             {
                 if (reader.Read())
                 {
                     prefs = new ProfilePreferences
                     {
                         User       = user,
                         IMviaEmail = (bool)reader["imviaemail"],
                         Visible    = (bool)reader["visible"]
                     };
                     return(true);
                 }
                 else
                 {
                     prefs = new ProfilePreferences
                     {
                         User       = user,
                         IMviaEmail = false,
                         Visible    = false
                     };
                     return(true);
                 }
             }
         }
     }
 }
Ejemplo n.º 5
0
        private void HandleUpdateUserInfo(ViewerAgent agent, SceneInterface scene, Message m)
        {
            var req = (UpdateUserInfo)m;

            if (req.AgentID != req.CircuitAgentID ||
                req.SessionID != req.CircuitSessionID)
            {
                return;
            }

            if (agent.ProfileService == null)
            {
                return;
            }

            var prefs = new ProfilePreferences
            {
                User       = agent.Owner,
                IMviaEmail = req.IMViaEmail,
                Visible    = req.DirectoryVisibility != "hidden"
            };

            try
            {
                agent.ProfileService.Preferences[agent.Owner] = prefs;
            }
            catch
            {
                agent.SendAlertMessage("Error updating preferences", scene.ID);
            }
        }
Ejemplo n.º 6
0
        private void HandleUserInfoRequest(ViewerAgent agent, SceneInterface scene, Message m)
        {
            var req = (UserInfoRequest)m;

            if (req.CircuitSessionID != req.SessionID ||
                req.CircuitAgentID != req.AgentID)
            {
                return;
            }

            ProfilePreferences prefs;

            try
            {
                prefs = agent.ProfileService.Preferences[agent.Owner];
            }
            catch /* yes, we are catching a NullReferenceException here too */
            {
                prefs = new ProfilePreferences
                {
                    IMviaEmail = false,
                    Visible    = false,
                    User       = agent.Owner
                };
            }

            var reply = new UserInfoReply
            {
                AgentID             = req.AgentID,
                DirectoryVisibility = (prefs.Visible) ?
                                      "default" :
                                      "hidden",
                EMail      = string.Empty,
                IMViaEmail = prefs.IMviaEmail
            };

            agent.SendMessageAlways(reply, scene.ID);
        }
 public bool TryGetValue(UGUI user, out ProfilePreferences profilePrefs) =>
 m_Preferences.TryGetValue(user.ID, out profilePrefs);
Ejemplo n.º 8
0
 public bool TryGetValue(UGUI user, out ProfilePreferences prefs)
 {
     prefs = default(ProfilePreferences);
     return(false);
 }
Ejemplo n.º 9
0
        public void HandleUserInfoRequest(ViewerAgent agent, AgentCircuit circuit, HttpRequest req)
        {
            if (req.CallerIP != circuit.RemoteIP)
            {
                req.ErrorResponse(HttpStatusCode.Forbidden, "Forbidden");
                return;
            }
            if (req.Method == "GET")
            {
                ProfilePreferences prefs;
                Map resmap;
                try
                {
                    prefs  = agent.ProfileService.Preferences[agent.Owner];
                    resmap = new Map
                    {
                        { "success", true },
                        { "im_via_email", prefs.IMviaEmail },
                        { "is_verified", false },
                        { "email", string.Empty },
                        { "directory_visibility", prefs.Visible }
                    };
                }
                catch /* yes, we are catching a NullReferenceException here too */
                {
                    resmap = new Map
                    {
                        { "success", false }
                    };
                }


                using (HttpResponse res = req.BeginResponse("application/llsd+xml"))
                    using (Stream s = res.GetOutputStream())
                    {
                        LlsdXml.Serialize(resmap, s);
                    }
            }
            else if (req.Method == "POST")
            {
                Map reqmap;
                try
                {
                    reqmap = LlsdXml.Deserialize(req.Body) as Map;
                }
                catch
                {
                    req.ErrorResponse(HttpStatusCode.BadRequest, "Bad request");
                    return;
                }

                if (reqmap == null)
                {
                    req.ErrorResponse(HttpStatusCode.BadRequest, "Bad request");
                    return;
                }

                if (agent.ProfileService == null)
                {
                    return;
                }

                var prefs = new ProfilePreferences
                {
                    User       = agent.Owner,
                    IMviaEmail = reqmap["im_via_email"].AsBoolean,
                    Visible    = reqmap["dir_visibility"].ToString() != "hidden"
                };
                Map resmap;
                try
                {
                    agent.ProfileService.Preferences[agent.Owner] = prefs;
                    resmap = new Map {
                        { "success", true }
                    };
                }
                catch
                {
                    agent.SendAlertMessage("Error updating preferences", circuit.Scene?.ID ?? UUID.Zero);
                    resmap = new Map {
                        { "success", false }
                    };
                }
                using (HttpResponse res = req.BeginResponse("application/llsd+xml"))
                    using (Stream s = res.GetOutputStream())
                    {
                        LlsdXml.Serialize(resmap, s);
                    }
            }
            else
            {
                req.ErrorResponse(HttpStatusCode.MethodNotAllowed, "Method not allowed");
            }
        }