Dictionary <UUID, bool> IExperiencePermissionsInterface.this[UUI agent]
        {
            get
            {
                var result = new Dictionary <UUID, bool>();
                using (var conn = new MySqlConnection(m_ConnectionString))
                {
                    conn.Open();
                    using (var cmd = new MySqlCommand("SELECT ExperienceID,User,IsAllowed FROM experienceusers WHERE User LIKE @user", conn))
                    {
                        cmd.Parameters.AddParameter("@user", agent.ID.ToString() + "%");
                        using (MySqlDataReader reader = cmd.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                UUI ret = reader.GetUUI("User");
                                if (ret.EqualsGrid(agent))
                                {
                                    result.Add(reader.GetUUID("ExperienceID"), reader.GetBool("IsAllowed"));
                                }
                            }
                        }
                    }
                }

                return(result);
            }
        }
        bool IExperiencePermissionsInterface.TryGetValue(UUID experienceID, UUI agent, out bool allowed)
        {
            using (var conn = new MySqlConnection(m_ConnectionString))
            {
                conn.Open();
                using (var cmd = new MySqlCommand("SELECT User,IsAllowed FROM experienceusers WHERE ExperienceID = @experienceid AND User LIKE @user", conn))
                {
                    cmd.Parameters.AddParameter("@experienceid", experienceID);
                    cmd.Parameters.AddParameter("@user", agent.ID.ToString() + "%");
                    using (MySqlDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            UUI ret = reader.GetUUI("User");
                            if (ret.EqualsGrid(agent))
                            {
                                allowed = reader.GetBool("IsAllowed");
                                return(true);
                            }
                        }
                    }
                }
            }

            allowed = false;
            return(false);
        }
Beispiel #3
0
 List <uint> IEstateOwnerServiceInterface.this[UUI owner]
 {
     get
     {
         var estates = new List <uint>();
         using (var conn = new MySqlConnection(m_ConnectionString))
         {
             conn.Open();
             using (var cmd = new MySqlCommand("SELECT ID, Owner FROM estates WHERE Owner LIKE @agentid", conn))
             {
                 cmd.Parameters.AddParameter("@id", owner.ID);
                 cmd.Parameters.AddParameter("@agentid", owner.ID.ToString() + "%");
                 using (MySqlDataReader reader = cmd.ExecuteReader())
                 {
                     while (reader.Read())
                     {
                         UUI uui = reader.GetUUI("Owner");
                         if (uui.EqualsGrid(owner))
                         {
                             estates.Add(reader.GetUInt32("ID"));
                         }
                     }
                     return(estates);
                 }
             }
         }
     }
 }
Beispiel #4
0
        bool IEstateBanServiceInterface.this[uint estateID, UUI agent]
        {
            get
            {
                using (var conn = new MySqlConnection(m_ConnectionString))
                {
                    conn.Open();
                    using (var cmd = new MySqlCommand("SELECT UserID FROM estate_bans WHERE EstateID = @estateid AND UserID LIKE @agentid", conn))
                    {
                        cmd.Parameters.AddParameter("@estateid", estateID);
                        cmd.Parameters.AddParameter("@agentid", agent.ID.ToString() + "%");
                        using (MySqlDataReader reader = cmd.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                UUI uui = reader.GetUUI("UserID");
                                if (uui.EqualsGrid(agent))
                                {
                                    return(true);
                                }
                            }
                            return(false);
                        }
                    }
                }
            }
            set
            {
                string query = value ?
                               "REPLACE INTO estate_bans (EstateID, UserID) VALUES (@estateid, @userid)" :
                               "DELETE FROM estate_bans WHERE EstateID = @estateid AND UserID LIKE @userid";

                using (var conn = new MySqlConnection(m_ConnectionString))
                {
                    conn.Open();
                    using (var cmd = new MySqlCommand(query, conn))
                    {
                        cmd.Parameters.AddParameter("@estateid", estateID);
                        if (value)
                        {
                            cmd.Parameters.AddParameter("@userid", agent);
                        }
                        else
                        {
                            cmd.Parameters.AddParameter("@userid", agent.ID.ToString() + "%");
                        }
                        if (cmd.ExecuteNonQuery() < 1 && value)
                        {
                            throw new EstateUpdateFailedException();
                        }
                    }
                }
            }
        }