aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenGrid.Framework.Data.DB4o/DB4oUserData.cs19
-rw-r--r--OpenGrid.Framework.Data.MSSQL/OpenGrid.Framework.Data.MSSQL.csproj35
-rw-r--r--OpenGrid.Framework.Data.MySQL/MySQLUserData.cs68
-rw-r--r--OpenGrid.Framework.Data.MySQL/OpenGrid.Framework.Data.MySQL.csproj38
-rw-r--r--OpenGrid.Framework.Data/UserData.cs73
-rw-r--r--OpenGrid.Framework.Data/UserProfileData.cs1
-rw-r--r--OpenGridServices.GridServer/GridManager.cs7
-rw-r--r--OpenGridServices.UserServer/Main.cs6
-rw-r--r--OpenGridServices.UserServer/OpenGridServices.UserServer.csproj48
-rw-r--r--OpenGridServices.UserServer/UserManager.cs102
-rw-r--r--OpenSim.Framework/UserProfileManager.cs6
-rw-r--r--prebuild.xml5
12 files changed, 349 insertions, 59 deletions
diff --git a/OpenGrid.Framework.Data.DB4o/DB4oUserData.cs b/OpenGrid.Framework.Data.DB4o/DB4oUserData.cs
index c21d7e2..7dd4c51 100644
--- a/OpenGrid.Framework.Data.DB4o/DB4oUserData.cs
+++ b/OpenGrid.Framework.Data.DB4o/DB4oUserData.cs
@@ -8,7 +8,12 @@ namespace OpenGrid.Framework.Data.DB4o
8{ 8{
9 public class DB4oUserData : IUserData 9 public class DB4oUserData : IUserData
10 { 10 {
11 DB4oUserManager manager = new DB4oUserManager("userprofiles.yap"); 11 DB4oUserManager manager;
12
13 public void Initialise()
14 {
15 manager = new DB4oUserManager("userprofiles.yap");
16 }
12 17
13 public UserProfileData getUserByUUID(LLUUID uuid) 18 public UserProfileData getUserByUUID(LLUUID uuid)
14 { 19 {
@@ -33,7 +38,7 @@ namespace OpenGrid.Framework.Data.DB4o
33 } 38 }
34 39
35 public UserAgentData getAgentByUUID(LLUUID uuid) 40 public UserAgentData getAgentByUUID(LLUUID uuid)
36 { 41 {
37 try 42 try
38 { 43 {
39 return getUserByUUID(uuid).currentAgent; 44 return getUserByUUID(uuid).currentAgent;
@@ -71,5 +76,15 @@ namespace OpenGrid.Framework.Data.DB4o
71 return true; 76 return true;
72 } 77 }
73 78
79
80 public string getName()
81 {
82 return "DB4o Userdata";
83 }
84
85 public string getVersion()
86 {
87 return "0.1";
88 }
74 } 89 }
75} 90}
diff --git a/OpenGrid.Framework.Data.MSSQL/OpenGrid.Framework.Data.MSSQL.csproj b/OpenGrid.Framework.Data.MSSQL/OpenGrid.Framework.Data.MSSQL.csproj
index efb6a32..e6d4b49 100644
--- a/OpenGrid.Framework.Data.MSSQL/OpenGrid.Framework.Data.MSSQL.csproj
+++ b/OpenGrid.Framework.Data.MSSQL/OpenGrid.Framework.Data.MSSQL.csproj
@@ -1,4 +1,4 @@
1<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 1<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <PropertyGroup> 2 <PropertyGroup>
3 <ProjectType>Local</ProjectType> 3 <ProjectType>Local</ProjectType>
4 <ProductVersion>8.0.50727</ProductVersion> 4 <ProductVersion>8.0.50727</ProductVersion>
@@ -6,7 +6,8 @@
6 <ProjectGuid>{0A563AC1-0000-0000-0000-000000000000}</ProjectGuid> 6 <ProjectGuid>{0A563AC1-0000-0000-0000-000000000000}</ProjectGuid>
7 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 7 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
8 <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 8 <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
9 <ApplicationIcon></ApplicationIcon> 9 <ApplicationIcon>
10 </ApplicationIcon>
10 <AssemblyKeyContainerName> 11 <AssemblyKeyContainerName>
11 </AssemblyKeyContainerName> 12 </AssemblyKeyContainerName>
12 <AssemblyName>OpenGrid.Framework.Data.MSSQL</AssemblyName> 13 <AssemblyName>OpenGrid.Framework.Data.MSSQL</AssemblyName>
@@ -15,9 +16,11 @@
15 <DefaultTargetSchema>IE50</DefaultTargetSchema> 16 <DefaultTargetSchema>IE50</DefaultTargetSchema>
16 <DelaySign>false</DelaySign> 17 <DelaySign>false</DelaySign>
17 <OutputType>Library</OutputType> 18 <OutputType>Library</OutputType>
18 <AppDesignerFolder></AppDesignerFolder> 19 <AppDesignerFolder>
20 </AppDesignerFolder>
19 <RootNamespace>OpenGrid.Framework.Data.MSSQL</RootNamespace> 21 <RootNamespace>OpenGrid.Framework.Data.MSSQL</RootNamespace>
20 <StartupObject></StartupObject> 22 <StartupObject>
23 </StartupObject>
21 <FileUpgradeFlags> 24 <FileUpgradeFlags>
22 </FileUpgradeFlags> 25 </FileUpgradeFlags>
23 </PropertyGroup> 26 </PropertyGroup>
@@ -28,7 +31,8 @@
28 <ConfigurationOverrideFile> 31 <ConfigurationOverrideFile>
29 </ConfigurationOverrideFile> 32 </ConfigurationOverrideFile>
30 <DefineConstants>TRACE;DEBUG</DefineConstants> 33 <DefineConstants>TRACE;DEBUG</DefineConstants>
31 <DocumentationFile></DocumentationFile> 34 <DocumentationFile>
35 </DocumentationFile>
32 <DebugSymbols>True</DebugSymbols> 36 <DebugSymbols>True</DebugSymbols>
33 <FileAlignment>4096</FileAlignment> 37 <FileAlignment>4096</FileAlignment>
34 <Optimize>False</Optimize> 38 <Optimize>False</Optimize>
@@ -37,7 +41,8 @@
37 <RemoveIntegerChecks>False</RemoveIntegerChecks> 41 <RemoveIntegerChecks>False</RemoveIntegerChecks>
38 <TreatWarningsAsErrors>False</TreatWarningsAsErrors> 42 <TreatWarningsAsErrors>False</TreatWarningsAsErrors>
39 <WarningLevel>4</WarningLevel> 43 <WarningLevel>4</WarningLevel>
40 <NoWarn></NoWarn> 44 <NoWarn>
45 </NoWarn>
41 </PropertyGroup> 46 </PropertyGroup>
42 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 47 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
43 <AllowUnsafeBlocks>False</AllowUnsafeBlocks> 48 <AllowUnsafeBlocks>False</AllowUnsafeBlocks>
@@ -46,7 +51,8 @@
46 <ConfigurationOverrideFile> 51 <ConfigurationOverrideFile>
47 </ConfigurationOverrideFile> 52 </ConfigurationOverrideFile>
48 <DefineConstants>TRACE</DefineConstants> 53 <DefineConstants>TRACE</DefineConstants>
49 <DocumentationFile></DocumentationFile> 54 <DocumentationFile>
55 </DocumentationFile>
50 <DebugSymbols>False</DebugSymbols> 56 <DebugSymbols>False</DebugSymbols>
51 <FileAlignment>4096</FileAlignment> 57 <FileAlignment>4096</FileAlignment>
52 <Optimize>True</Optimize> 58 <Optimize>True</Optimize>
@@ -55,22 +61,23 @@
55 <RemoveIntegerChecks>False</RemoveIntegerChecks> 61 <RemoveIntegerChecks>False</RemoveIntegerChecks>
56 <TreatWarningsAsErrors>False</TreatWarningsAsErrors> 62 <TreatWarningsAsErrors>False</TreatWarningsAsErrors>
57 <WarningLevel>4</WarningLevel> 63 <WarningLevel>4</WarningLevel>
58 <NoWarn></NoWarn> 64 <NoWarn>
65 </NoWarn>
59 </PropertyGroup> 66 </PropertyGroup>
60 <ItemGroup> 67 <ItemGroup>
61 <Reference Include="System" > 68 <Reference Include="System">
62 <HintPath>System.dll</HintPath> 69 <HintPath>System.dll</HintPath>
63 <Private>False</Private> 70 <Private>False</Private>
64 </Reference> 71 </Reference>
65 <Reference Include="System.Xml" > 72 <Reference Include="System.Xml">
66 <HintPath>System.Xml.dll</HintPath> 73 <HintPath>System.Xml.dll</HintPath>
67 <Private>False</Private> 74 <Private>False</Private>
68 </Reference> 75 </Reference>
69 <Reference Include="System.Data" > 76 <Reference Include="System.Data">
70 <HintPath>System.Data.dll</HintPath> 77 <HintPath>System.Data.dll</HintPath>
71 <Private>False</Private> 78 <Private>False</Private>
72 </Reference> 79 </Reference>
73 <Reference Include="libsecondlife.dll" > 80 <Reference Include="libsecondlife.dll">
74 <HintPath>..\bin\libsecondlife.dll</HintPath> 81 <HintPath>..\bin\libsecondlife.dll</HintPath>
75 <Private>False</Private> 82 <Private>False</Private>
76 </Reference> 83 </Reference>
@@ -80,7 +87,7 @@
80 <Name>OpenGrid.Framework.Data</Name> 87 <Name>OpenGrid.Framework.Data</Name>
81 <Project>{62CDF671-0000-0000-0000-000000000000}</Project> 88 <Project>{62CDF671-0000-0000-0000-000000000000}</Project>
82 <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> 89 <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
83 <Private>False</Private> 90 <Private>False</Private>
84 </ProjectReference> 91 </ProjectReference>
85 </ItemGroup> 92 </ItemGroup>
86 <ItemGroup> 93 <ItemGroup>
@@ -101,4 +108,4 @@
101 <PostBuildEvent> 108 <PostBuildEvent>
102 </PostBuildEvent> 109 </PostBuildEvent>
103 </PropertyGroup> 110 </PropertyGroup>
104</Project> 111</Project> \ No newline at end of file
diff --git a/OpenGrid.Framework.Data.MySQL/MySQLUserData.cs b/OpenGrid.Framework.Data.MySQL/MySQLUserData.cs
new file mode 100644
index 0000000..4f35a59
--- /dev/null
+++ b/OpenGrid.Framework.Data.MySQL/MySQLUserData.cs
@@ -0,0 +1,68 @@
1using System;
2using System.Collections.Generic;
3using System.Text;
4using OpenGrid.Framework.Data;
5using libsecondlife;
6
7namespace OpenGrid.Framework.Data.MySQL
8{
9 class MySQLUserData : IUserData
10 {
11 public MySQLManager manager;
12
13 public void Initialise()
14 {
15 manager = new MySQLManager("host", "database", "user", "password", "false");
16 }
17
18 public UserProfileData getUserByName(string name)
19 {
20 return getUserByName(name.Split(' ')[0], name.Split(' ')[1]);
21 }
22
23 public UserProfileData getUserByName(string user, string last)
24 {
25 return new UserProfileData();
26 }
27
28 public UserProfileData getUserByUUID(LLUUID uuid)
29 {
30 return new UserProfileData();
31 }
32
33 public UserAgentData getAgentByName(string name)
34 {
35 return getAgentByName(name.Split(' ')[0], name.Split(' ')[1]);
36 }
37
38 public UserAgentData getAgentByName(string user, string last)
39 {
40 return new UserAgentData();
41 }
42
43 public UserAgentData getAgentByUUID(LLUUID uuid)
44 {
45 return new UserAgentData();
46 }
47
48 public bool moneyTransferRequest(LLUUID from, LLUUID to, uint amount)
49 {
50 return false;
51 }
52
53 public bool inventoryTransferRequest(LLUUID from, LLUUID to, LLUUID item)
54 {
55 return false;
56 }
57
58 public string getName()
59 {
60 return "MySQL Userdata Interface";
61 }
62
63 public string getVersion()
64 {
65 return "0.1";
66 }
67 }
68}
diff --git a/OpenGrid.Framework.Data.MySQL/OpenGrid.Framework.Data.MySQL.csproj b/OpenGrid.Framework.Data.MySQL/OpenGrid.Framework.Data.MySQL.csproj
index d9ee212..67cdda6 100644
--- a/OpenGrid.Framework.Data.MySQL/OpenGrid.Framework.Data.MySQL.csproj
+++ b/OpenGrid.Framework.Data.MySQL/OpenGrid.Framework.Data.MySQL.csproj
@@ -1,4 +1,4 @@
1<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 1<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <PropertyGroup> 2 <PropertyGroup>
3 <ProjectType>Local</ProjectType> 3 <ProjectType>Local</ProjectType>
4 <ProductVersion>8.0.50727</ProductVersion> 4 <ProductVersion>8.0.50727</ProductVersion>
@@ -6,7 +6,8 @@
6 <ProjectGuid>{0F3C3AC1-0000-0000-0000-000000000000}</ProjectGuid> 6 <ProjectGuid>{0F3C3AC1-0000-0000-0000-000000000000}</ProjectGuid>
7 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 7 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
8 <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 8 <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
9 <ApplicationIcon></ApplicationIcon> 9 <ApplicationIcon>
10 </ApplicationIcon>
10 <AssemblyKeyContainerName> 11 <AssemblyKeyContainerName>
11 </AssemblyKeyContainerName> 12 </AssemblyKeyContainerName>
12 <AssemblyName>OpenGrid.Framework.Data.MySQL</AssemblyName> 13 <AssemblyName>OpenGrid.Framework.Data.MySQL</AssemblyName>
@@ -15,9 +16,11 @@
15 <DefaultTargetSchema>IE50</DefaultTargetSchema> 16 <DefaultTargetSchema>IE50</DefaultTargetSchema>
16 <DelaySign>false</DelaySign> 17 <DelaySign>false</DelaySign>
17 <OutputType>Library</OutputType> 18 <OutputType>Library</OutputType>
18 <AppDesignerFolder></AppDesignerFolder> 19 <AppDesignerFolder>
20 </AppDesignerFolder>
19 <RootNamespace>OpenGrid.Framework.Data.MySQL</RootNamespace> 21 <RootNamespace>OpenGrid.Framework.Data.MySQL</RootNamespace>
20 <StartupObject></StartupObject> 22 <StartupObject>
23 </StartupObject>
21 <FileUpgradeFlags> 24 <FileUpgradeFlags>
22 </FileUpgradeFlags> 25 </FileUpgradeFlags>
23 </PropertyGroup> 26 </PropertyGroup>
@@ -28,7 +31,8 @@
28 <ConfigurationOverrideFile> 31 <ConfigurationOverrideFile>
29 </ConfigurationOverrideFile> 32 </ConfigurationOverrideFile>
30 <DefineConstants>TRACE;DEBUG</DefineConstants> 33 <DefineConstants>TRACE;DEBUG</DefineConstants>
31 <DocumentationFile></DocumentationFile> 34 <DocumentationFile>
35 </DocumentationFile>
32 <DebugSymbols>True</DebugSymbols> 36 <DebugSymbols>True</DebugSymbols>
33 <FileAlignment>4096</FileAlignment> 37 <FileAlignment>4096</FileAlignment>
34 <Optimize>False</Optimize> 38 <Optimize>False</Optimize>
@@ -37,7 +41,8 @@
37 <RemoveIntegerChecks>False</RemoveIntegerChecks> 41 <RemoveIntegerChecks>False</RemoveIntegerChecks>
38 <TreatWarningsAsErrors>False</TreatWarningsAsErrors> 42 <TreatWarningsAsErrors>False</TreatWarningsAsErrors>
39 <WarningLevel>4</WarningLevel> 43 <WarningLevel>4</WarningLevel>
40 <NoWarn></NoWarn> 44 <NoWarn>
45 </NoWarn>
41 </PropertyGroup> 46 </PropertyGroup>
42 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 47 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
43 <AllowUnsafeBlocks>False</AllowUnsafeBlocks> 48 <AllowUnsafeBlocks>False</AllowUnsafeBlocks>
@@ -46,7 +51,8 @@
46 <ConfigurationOverrideFile> 51 <ConfigurationOverrideFile>
47 </ConfigurationOverrideFile> 52 </ConfigurationOverrideFile>
48 <DefineConstants>TRACE</DefineConstants> 53 <DefineConstants>TRACE</DefineConstants>
49 <DocumentationFile></DocumentationFile> 54 <DocumentationFile>
55 </DocumentationFile>
50 <DebugSymbols>False</DebugSymbols> 56 <DebugSymbols>False</DebugSymbols>
51 <FileAlignment>4096</FileAlignment> 57 <FileAlignment>4096</FileAlignment>
52 <Optimize>True</Optimize> 58 <Optimize>True</Optimize>
@@ -55,26 +61,27 @@
55 <RemoveIntegerChecks>False</RemoveIntegerChecks> 61 <RemoveIntegerChecks>False</RemoveIntegerChecks>
56 <TreatWarningsAsErrors>False</TreatWarningsAsErrors> 62 <TreatWarningsAsErrors>False</TreatWarningsAsErrors>
57 <WarningLevel>4</WarningLevel> 63 <WarningLevel>4</WarningLevel>
58 <NoWarn></NoWarn> 64 <NoWarn>
65 </NoWarn>
59 </PropertyGroup> 66 </PropertyGroup>
60 <ItemGroup> 67 <ItemGroup>
61 <Reference Include="System" > 68 <Reference Include="System">
62 <HintPath>System.dll</HintPath> 69 <HintPath>System.dll</HintPath>
63 <Private>False</Private> 70 <Private>False</Private>
64 </Reference> 71 </Reference>
65 <Reference Include="System.Xml" > 72 <Reference Include="System.Xml">
66 <HintPath>System.Xml.dll</HintPath> 73 <HintPath>System.Xml.dll</HintPath>
67 <Private>False</Private> 74 <Private>False</Private>
68 </Reference> 75 </Reference>
69 <Reference Include="System.Data" > 76 <Reference Include="System.Data">
70 <HintPath>System.Data.dll</HintPath> 77 <HintPath>System.Data.dll</HintPath>
71 <Private>False</Private> 78 <Private>False</Private>
72 </Reference> 79 </Reference>
73 <Reference Include="libsecondlife.dll" > 80 <Reference Include="libsecondlife.dll">
74 <HintPath>..\bin\libsecondlife.dll</HintPath> 81 <HintPath>..\bin\libsecondlife.dll</HintPath>
75 <Private>False</Private> 82 <Private>False</Private>
76 </Reference> 83 </Reference>
77 <Reference Include="MySql.Data.dll" > 84 <Reference Include="MySql.Data.dll">
78 <HintPath>..\bin\MySql.Data.dll</HintPath> 85 <HintPath>..\bin\MySql.Data.dll</HintPath>
79 <Private>False</Private> 86 <Private>False</Private>
80 </Reference> 87 </Reference>
@@ -84,7 +91,7 @@
84 <Name>OpenGrid.Framework.Data</Name> 91 <Name>OpenGrid.Framework.Data</Name>
85 <Project>{62CDF671-0000-0000-0000-000000000000}</Project> 92 <Project>{62CDF671-0000-0000-0000-000000000000}</Project>
86 <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> 93 <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
87 <Private>False</Private> 94 <Private>False</Private>
88 </ProjectReference> 95 </ProjectReference>
89 </ItemGroup> 96 </ItemGroup>
90 <ItemGroup> 97 <ItemGroup>
@@ -94,6 +101,7 @@
94 <Compile Include="MySQLManager.cs"> 101 <Compile Include="MySQLManager.cs">
95 <SubType>Code</SubType> 102 <SubType>Code</SubType>
96 </Compile> 103 </Compile>
104 <Compile Include="MySQLUserData.cs" />
97 <Compile Include="Properties\AssemblyInfo.cs"> 105 <Compile Include="Properties\AssemblyInfo.cs">
98 <SubType>Code</SubType> 106 <SubType>Code</SubType>
99 </Compile> 107 </Compile>
@@ -105,4 +113,4 @@
105 <PostBuildEvent> 113 <PostBuildEvent>
106 </PostBuildEvent> 114 </PostBuildEvent>
107 </PropertyGroup> 115 </PropertyGroup>
108</Project> 116</Project> \ No newline at end of file
diff --git a/OpenGrid.Framework.Data/UserData.cs b/OpenGrid.Framework.Data/UserData.cs
index 6b4f2ba..1b37957 100644
--- a/OpenGrid.Framework.Data/UserData.cs
+++ b/OpenGrid.Framework.Data/UserData.cs
@@ -7,18 +7,83 @@ namespace OpenGrid.Framework.Data
7{ 7{
8 public interface IUserData 8 public interface IUserData
9 { 9 {
10 // Retrieval 10 /// <summary>
11 // User Profiles 11 /// Returns a user profile from a database via their UUID
12 /// </summary>
13 /// <param name="user">The accounts UUID</param>
14 /// <returns>The user data profile</returns>
12 UserProfileData getUserByUUID(LLUUID user); 15 UserProfileData getUserByUUID(LLUUID user);
16
17 /// <summary>
18 /// Returns a users profile by searching their username
19 /// </summary>
20 /// <param name="name">The users username</param>
21 /// <returns>The user data profile</returns>
13 UserProfileData getUserByName(string name); 22 UserProfileData getUserByName(string name);
23
24 /// <summary>
25 /// Returns a users profile by searching their username parts
26 /// </summary>
27 /// <param name="fname">Account firstname</param>
28 /// <param name="lname">Account lastname</param>
29 /// <returns>The user data profile</returns>
14 UserProfileData getUserByName(string fname, string lname); 30 UserProfileData getUserByName(string fname, string lname);
15 // User Agents 31
32 /// <summary>
33 /// Returns the current agent for a user searching by it's UUID
34 /// </summary>
35 /// <param name="user">The users UUID</param>
36 /// <returns>The current agent session</returns>
16 UserAgentData getAgentByUUID(LLUUID user); 37 UserAgentData getAgentByUUID(LLUUID user);
38
39 /// <summary>
40 /// Returns the current session agent for a user searching by username
41 /// </summary>
42 /// <param name="name">The users account name</param>
43 /// <returns>The current agent session</returns>
17 UserAgentData getAgentByName(string name); 44 UserAgentData getAgentByName(string name);
45
46 /// <summary>
47 /// Returns the current session agent for a user searching by username parts
48 /// </summary>
49 /// <param name="fname">The users first account name</param>
50 /// <param name="lname">The users account surname</param>
51 /// <returns>The current agent session</returns>
18 UserAgentData getAgentByName(string fname, string lname); 52 UserAgentData getAgentByName(string fname, string lname);
19 53
20 // Transactional 54 /// <summary>
55 /// Attempts to move currency units between accounts (NOT RELIABLE / TRUSTWORTHY. DONT TRY RUN YOUR OWN CURRENCY EXCHANGE WITH REAL VALUES)
56 /// </summary>
57 /// <param name="from">The account to transfer from</param>
58 /// <param name="to">The account to transfer to</param>
59 /// <param name="amount">The amount to transfer</param>
60 /// <returns>Successful?</returns>
21 bool moneyTransferRequest(LLUUID from, LLUUID to, uint amount); 61 bool moneyTransferRequest(LLUUID from, LLUUID to, uint amount);
62
63 /// <summary>
64 /// Attempts to move inventory between accounts, if inventory is copyable it will be copied into the target account.
65 /// </summary>
66 /// <param name="from">User to transfer from</param>
67 /// <param name="to">User to transfer to</param>
68 /// <param name="inventory">Specified inventory item</param>
69 /// <returns>Successful?</returns>
22 bool inventoryTransferRequest(LLUUID from, LLUUID to, LLUUID inventory); 70 bool inventoryTransferRequest(LLUUID from, LLUUID to, LLUUID inventory);
71
72 /// <summary>
73 /// Returns the plugin version
74 /// </summary>
75 /// <returns>Plugin version in MAJOR.MINOR.REVISION.BUILD format</returns>
76 string getVersion();
77
78 /// <summary>
79 /// Returns the plugin name
80 /// </summary>
81 /// <returns>Plugin name, eg MySQL User Provider</returns>
82 string getName();
83
84 /// <summary>
85 /// Initialises the plugin (artificial constructor)
86 /// </summary>
87 void Initialise();
23 } 88 }
24} 89}
diff --git a/OpenGrid.Framework.Data/UserProfileData.cs b/OpenGrid.Framework.Data/UserProfileData.cs
index 8d72c6b..3d8eec4 100644
--- a/OpenGrid.Framework.Data/UserProfileData.cs
+++ b/OpenGrid.Framework.Data/UserProfileData.cs
@@ -12,6 +12,7 @@ namespace OpenGrid.Framework.Data
12 public string surname; // The users surname (can be used to indicate user class - eg 'Test User' or 'Test Admin') 12 public string surname; // The users surname (can be used to indicate user class - eg 'Test User' or 'Test Admin')
13 13
14 public string passwordHash; // Hash of the users password 14 public string passwordHash; // Hash of the users password
15 public string passwordSalt; // Salt for the users password
15 16
16 public ulong homeRegion; // RegionHandle of home 17 public ulong homeRegion; // RegionHandle of home
17 public LLVector3 homeLocation; // Home Location inside the sim 18 public LLVector3 homeLocation; // Home Location inside the sim
diff --git a/OpenGridServices.GridServer/GridManager.cs b/OpenGridServices.GridServer/GridManager.cs
index db864da..1fc7c31 100644
--- a/OpenGridServices.GridServer/GridManager.cs
+++ b/OpenGridServices.GridServer/GridManager.cs
@@ -383,6 +383,11 @@ namespace OpenGridServices.GridServer
383 383
384 TheSim.serverURI = "http://" + TheSim.serverIP + ":" + TheSim.serverPort + "/"; 384 TheSim.serverURI = "http://" + TheSim.serverIP + ":" + TheSim.serverPort + "/";
385 385
386 if (TheSim.serverIP.StartsWith("172.16") || TheSim.serverIP.StartsWith("192.168") || TheSim.serverIP.StartsWith("10.") || TheSim.serverIP.StartsWith("0.") || TheSim.serverIP.StartsWith("255."))
387 {
388 return "ERROR! Servers must register with public addresses.";
389 }
390
386 try 391 try
387 { 392 {
388 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW,"Attempting to add a new region to the grid - " + _plugins.Count + " storage provider(s) registered."); 393 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW,"Attempting to add a new region to the grid - " + _plugins.Count + " storage provider(s) registered.");
@@ -402,7 +407,7 @@ namespace OpenGridServices.GridServer
402 } 407 }
403 catch (Exception e) 408 catch (Exception e)
404 { 409 {
405 return "ERROR! could not save to database! (" + e.ToString() + ")"; 410 return "ERROR! Could not save to database! (" + e.ToString() + ")";
406 } 411 }
407 412
408 } 413 }
diff --git a/OpenGridServices.UserServer/Main.cs b/OpenGridServices.UserServer/Main.cs
index ed7b768..1c6ad8c 100644
--- a/OpenGridServices.UserServer/Main.cs
+++ b/OpenGridServices.UserServer/Main.cs
@@ -50,6 +50,8 @@ namespace OpenGridServices.UserServer
50 private string ConfigDll = "OpenUser.Config.UserConfigDb4o.dll"; 50 private string ConfigDll = "OpenUser.Config.UserConfigDb4o.dll";
51 private UserConfig Cfg; 51 private UserConfig Cfg;
52 52
53 public UserManager m_userManager; // Replaces below.
54
53 private UserProfileManager m_userProfileManager; 55 private UserProfileManager m_userProfileManager;
54 56
55 public Dictionary<LLUUID, UserProfile> UserSessions = new Dictionary<LLUUID, UserProfile>(); 57 public Dictionary<LLUUID, UserProfile> UserSessions = new Dictionary<LLUUID, UserProfile>();
@@ -62,6 +64,7 @@ namespace OpenGridServices.UserServer
62 Console.WriteLine("Starting...\n"); 64 Console.WriteLine("Starting...\n");
63 65
64 OpenUser_Main userserver = new OpenUser_Main(); 66 OpenUser_Main userserver = new OpenUser_Main();
67
65 userserver.Startup(); 68 userserver.Startup();
66 userserver.Work(); 69 userserver.Work();
67 } 70 }
@@ -88,6 +91,9 @@ namespace OpenGridServices.UserServer
88 Cfg = this.LoadConfigDll(this.ConfigDll); 91 Cfg = this.LoadConfigDll(this.ConfigDll);
89 Cfg.InitConfig(); 92 Cfg.InitConfig();
90 93
94 MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Main.cs:Startup() - Establishing data connection");
95 m_userManager = new UserManager();
96
91 MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW,"Main.cs:Startup() - Creating user profile manager"); 97 MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW,"Main.cs:Startup() - Creating user profile manager");
92 m_userProfileManager = new UserProfileManager(); 98 m_userProfileManager = new UserProfileManager();
93 m_userProfileManager.InitUserProfiles(); 99 m_userProfileManager.InitUserProfiles();
diff --git a/OpenGridServices.UserServer/OpenGridServices.UserServer.csproj b/OpenGridServices.UserServer/OpenGridServices.UserServer.csproj
index 888b62d..75642b3 100644
--- a/OpenGridServices.UserServer/OpenGridServices.UserServer.csproj
+++ b/OpenGridServices.UserServer/OpenGridServices.UserServer.csproj
@@ -1,4 +1,4 @@
1<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 1<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2 <PropertyGroup> 2 <PropertyGroup>
3 <ProjectType>Local</ProjectType> 3 <ProjectType>Local</ProjectType>
4 <ProductVersion>8.0.50727</ProductVersion> 4 <ProductVersion>8.0.50727</ProductVersion>
@@ -6,7 +6,8 @@
6 <ProjectGuid>{66591469-0000-0000-0000-000000000000}</ProjectGuid> 6 <ProjectGuid>{66591469-0000-0000-0000-000000000000}</ProjectGuid>
7 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 7 <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
8 <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 8 <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
9 <ApplicationIcon></ApplicationIcon> 9 <ApplicationIcon>
10 </ApplicationIcon>
10 <AssemblyKeyContainerName> 11 <AssemblyKeyContainerName>
11 </AssemblyKeyContainerName> 12 </AssemblyKeyContainerName>
12 <AssemblyName>OpenGridServices.UserServer</AssemblyName> 13 <AssemblyName>OpenGridServices.UserServer</AssemblyName>
@@ -15,9 +16,11 @@
15 <DefaultTargetSchema>IE50</DefaultTargetSchema> 16 <DefaultTargetSchema>IE50</DefaultTargetSchema>
16 <DelaySign>false</DelaySign> 17 <DelaySign>false</DelaySign>
17 <OutputType>Exe</OutputType> 18 <OutputType>Exe</OutputType>
18 <AppDesignerFolder></AppDesignerFolder> 19 <AppDesignerFolder>
20 </AppDesignerFolder>
19 <RootNamespace>OpenGridServices.UserServer</RootNamespace> 21 <RootNamespace>OpenGridServices.UserServer</RootNamespace>
20 <StartupObject></StartupObject> 22 <StartupObject>
23 </StartupObject>
21 <FileUpgradeFlags> 24 <FileUpgradeFlags>
22 </FileUpgradeFlags> 25 </FileUpgradeFlags>
23 </PropertyGroup> 26 </PropertyGroup>
@@ -28,7 +31,8 @@
28 <ConfigurationOverrideFile> 31 <ConfigurationOverrideFile>
29 </ConfigurationOverrideFile> 32 </ConfigurationOverrideFile>
30 <DefineConstants>TRACE;DEBUG</DefineConstants> 33 <DefineConstants>TRACE;DEBUG</DefineConstants>
31 <DocumentationFile></DocumentationFile> 34 <DocumentationFile>
35 </DocumentationFile>
32 <DebugSymbols>True</DebugSymbols> 36 <DebugSymbols>True</DebugSymbols>
33 <FileAlignment>4096</FileAlignment> 37 <FileAlignment>4096</FileAlignment>
34 <Optimize>False</Optimize> 38 <Optimize>False</Optimize>
@@ -37,7 +41,8 @@
37 <RemoveIntegerChecks>False</RemoveIntegerChecks> 41 <RemoveIntegerChecks>False</RemoveIntegerChecks>
38 <TreatWarningsAsErrors>False</TreatWarningsAsErrors> 42 <TreatWarningsAsErrors>False</TreatWarningsAsErrors>
39 <WarningLevel>4</WarningLevel> 43 <WarningLevel>4</WarningLevel>
40 <NoWarn></NoWarn> 44 <NoWarn>
45 </NoWarn>
41 </PropertyGroup> 46 </PropertyGroup>
42 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 47 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
43 <AllowUnsafeBlocks>False</AllowUnsafeBlocks> 48 <AllowUnsafeBlocks>False</AllowUnsafeBlocks>
@@ -46,7 +51,8 @@
46 <ConfigurationOverrideFile> 51 <ConfigurationOverrideFile>
47 </ConfigurationOverrideFile> 52 </ConfigurationOverrideFile>
48 <DefineConstants>TRACE</DefineConstants> 53 <DefineConstants>TRACE</DefineConstants>
49 <DocumentationFile></DocumentationFile> 54 <DocumentationFile>
55 </DocumentationFile>
50 <DebugSymbols>False</DebugSymbols> 56 <DebugSymbols>False</DebugSymbols>
51 <FileAlignment>4096</FileAlignment> 57 <FileAlignment>4096</FileAlignment>
52 <Optimize>True</Optimize> 58 <Optimize>True</Optimize>
@@ -55,54 +61,59 @@
55 <RemoveIntegerChecks>False</RemoveIntegerChecks> 61 <RemoveIntegerChecks>False</RemoveIntegerChecks>
56 <TreatWarningsAsErrors>False</TreatWarningsAsErrors> 62 <TreatWarningsAsErrors>False</TreatWarningsAsErrors>
57 <WarningLevel>4</WarningLevel> 63 <WarningLevel>4</WarningLevel>
58 <NoWarn></NoWarn> 64 <NoWarn>
65 </NoWarn>
59 </PropertyGroup> 66 </PropertyGroup>
60 <ItemGroup> 67 <ItemGroup>
61 <Reference Include="System" > 68 <Reference Include="System">
62 <HintPath>System.dll</HintPath> 69 <HintPath>System.dll</HintPath>
63 <Private>False</Private> 70 <Private>False</Private>
64 </Reference> 71 </Reference>
65 <Reference Include="System.Data" > 72 <Reference Include="System.Data">
66 <HintPath>System.Data.dll</HintPath> 73 <HintPath>System.Data.dll</HintPath>
67 <Private>False</Private> 74 <Private>False</Private>
68 </Reference> 75 </Reference>
69 <Reference Include="System.Xml" > 76 <Reference Include="System.Xml">
70 <HintPath>System.Xml.dll</HintPath> 77 <HintPath>System.Xml.dll</HintPath>
71 <Private>False</Private> 78 <Private>False</Private>
72 </Reference> 79 </Reference>
73 <Reference Include="libsecondlife.dll" > 80 <Reference Include="libsecondlife.dll">
74 <HintPath>..\bin\libsecondlife.dll</HintPath> 81 <HintPath>..\bin\libsecondlife.dll</HintPath>
75 <Private>False</Private> 82 <Private>False</Private>
76 </Reference> 83 </Reference>
77 <Reference Include="Db4objects.Db4o.dll" > 84 <Reference Include="Db4objects.Db4o.dll">
78 <HintPath>..\bin\Db4objects.Db4o.dll</HintPath> 85 <HintPath>..\bin\Db4objects.Db4o.dll</HintPath>
79 <Private>False</Private> 86 <Private>False</Private>
80 </Reference> 87 </Reference>
81 </ItemGroup> 88 </ItemGroup>
82 <ItemGroup> 89 <ItemGroup>
90 <ProjectReference Include="..\OpenGrid.Framework.Data\OpenGrid.Framework.Data.csproj">
91 <Project>{62CDF671-0000-0000-0000-000000000000}</Project>
92 <Name>OpenGrid.Framework.Data</Name>
93 </ProjectReference>
83 <ProjectReference Include="..\OpenSim.Framework\OpenSim.Framework.csproj"> 94 <ProjectReference Include="..\OpenSim.Framework\OpenSim.Framework.csproj">
84 <Name>OpenSim.Framework</Name> 95 <Name>OpenSim.Framework</Name>
85 <Project>{8ACA2445-0000-0000-0000-000000000000}</Project> 96 <Project>{8ACA2445-0000-0000-0000-000000000000}</Project>
86 <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> 97 <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
87 <Private>False</Private> 98 <Private>False</Private>
88 </ProjectReference> 99 </ProjectReference>
89 <ProjectReference Include="..\OpenSim.Framework.Console\OpenSim.Framework.Console.csproj"> 100 <ProjectReference Include="..\OpenSim.Framework.Console\OpenSim.Framework.Console.csproj">
90 <Name>OpenSim.Framework.Console</Name> 101 <Name>OpenSim.Framework.Console</Name>
91 <Project>{A7CD0630-0000-0000-0000-000000000000}</Project> 102 <Project>{A7CD0630-0000-0000-0000-000000000000}</Project>
92 <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> 103 <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
93 <Private>False</Private> 104 <Private>False</Private>
94 </ProjectReference> 105 </ProjectReference>
95 <ProjectReference Include="..\OpenSim.Servers\OpenSim.Servers.csproj"> 106 <ProjectReference Include="..\OpenSim.Servers\OpenSim.Servers.csproj">
96 <Name>OpenSim.Servers</Name> 107 <Name>OpenSim.Servers</Name>
97 <Project>{8BB20F0A-0000-0000-0000-000000000000}</Project> 108 <Project>{8BB20F0A-0000-0000-0000-000000000000}</Project>
98 <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> 109 <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
99 <Private>False</Private> 110 <Private>False</Private>
100 </ProjectReference> 111 </ProjectReference>
101 <ProjectReference Include="..\XmlRpcCS\XMLRPC.csproj"> 112 <ProjectReference Include="..\XmlRpcCS\XMLRPC.csproj">
102 <Name>XMLRPC</Name> 113 <Name>XMLRPC</Name>
103 <Project>{8E81D43C-0000-0000-0000-000000000000}</Project> 114 <Project>{8E81D43C-0000-0000-0000-000000000000}</Project>
104 <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> 115 <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package>
105 <Private>False</Private> 116 <Private>False</Private>
106 </ProjectReference> 117 </ProjectReference>
107 </ItemGroup> 118 </ItemGroup>
108 <ItemGroup> 119 <ItemGroup>
@@ -112,6 +123,7 @@
112 <Compile Include="Properties\AssemblyInfo.cs"> 123 <Compile Include="Properties\AssemblyInfo.cs">
113 <SubType>Code</SubType> 124 <SubType>Code</SubType>
114 </Compile> 125 </Compile>
126 <Compile Include="UserManager.cs" />
115 </ItemGroup> 127 </ItemGroup>
116 <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" /> 128 <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
117 <PropertyGroup> 129 <PropertyGroup>
@@ -120,4 +132,4 @@
120 <PostBuildEvent> 132 <PostBuildEvent>
121 </PostBuildEvent> 133 </PostBuildEvent>
122 </PropertyGroup> 134 </PropertyGroup>
123</Project> 135</Project> \ No newline at end of file
diff --git a/OpenGridServices.UserServer/UserManager.cs b/OpenGridServices.UserServer/UserManager.cs
new file mode 100644
index 0000000..7473685
--- /dev/null
+++ b/OpenGridServices.UserServer/UserManager.cs
@@ -0,0 +1,102 @@
1using System;
2using System.Collections.Generic;
3using System.Text;
4using OpenGrid.Framework.Data;
5using libsecondlife;
6using System.Reflection;
7
8using System.Xml;
9using Nwc.XmlRpc;
10using OpenSim.Framework.Sims;
11using OpenSim.Framework.Inventory;
12using OpenSim.Framework.Utilities;
13
14namespace OpenGridServices.UserServer
15{
16 public class UserManager
17 {
18 Dictionary<string, IUserData> _plugins = new Dictionary<string, IUserData>();
19
20 /// <summary>
21 /// Adds a new user server plugin - user servers will be requested in the order they were loaded.
22 /// </summary>
23 /// <param name="FileName">The filename to the user server plugin DLL</param>
24 public void AddPlugin(string FileName)
25 {
26 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Storage: Attempting to load " + FileName);
27 Assembly pluginAssembly = Assembly.LoadFrom(FileName);
28
29 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Storage: Found " + pluginAssembly.GetTypes().Length + " interfaces.");
30 foreach (Type pluginType in pluginAssembly.GetTypes())
31 {
32 if (!pluginType.IsAbstract)
33 {
34 Type typeInterface = pluginType.GetInterface("IUserData", true);
35
36 if (typeInterface != null)
37 {
38 IUserData plug = (IUserData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString()));
39 plug.Initialise();
40 this._plugins.Add(plug.getName(), plug);
41 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Storage: Added IUserData Interface");
42 }
43
44 typeInterface = null;
45 }
46 }
47
48 pluginAssembly = null;
49 }
50
51 public UserProfileData getUserProfile(LLUUID uuid)
52 {
53 foreach (KeyValuePair<string, IUserData> plugin in _plugins)
54 {
55 try
56 {
57 return plugin.Value.getUserByUUID(uuid);
58 }
59 catch (Exception e)
60 {
61 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")");
62 }
63 }
64
65 return null;
66 }
67
68 public UserProfileData getUserProfile(string name)
69 {
70 foreach (KeyValuePair<string, IUserData> plugin in _plugins)
71 {
72 try
73 {
74 return plugin.Value.getUserByName(name);
75 }
76 catch (Exception e)
77 {
78 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")");
79 }
80 }
81
82 return null;
83 }
84
85 public UserProfileData getUserProfile(string fname, string lname)
86 {
87 foreach (KeyValuePair<string, IUserData> plugin in _plugins)
88 {
89 try
90 {
91 return plugin.Value.getUserByName(fname,lname);
92 }
93 catch (Exception e)
94 {
95 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")");
96 }
97 }
98
99 return null;
100 }
101 }
102}
diff --git a/OpenSim.Framework/UserProfileManager.cs b/OpenSim.Framework/UserProfileManager.cs
index 5752f8c..18b3513 100644
--- a/OpenSim.Framework/UserProfileManager.cs
+++ b/OpenSim.Framework/UserProfileManager.cs
@@ -259,9 +259,9 @@ namespace OpenSim.Framework.User
259 SimParams["lastname"] = theUser.lastname; 259 SimParams["lastname"] = theUser.lastname;
260 SimParams["agent_id"] = theUser.UUID.ToString(); 260 SimParams["agent_id"] = theUser.UUID.ToString();
261 SimParams["circuit_code"] = (Int32)circode; 261 SimParams["circuit_code"] = (Int32)circode;
262 SimParams["startpos_x"] = theUser.homepos.X.ToString(); 262 SimParams["startpos_x"] = theUser.homepos.X.ToString();
263 SimParams["startpos_y"] = theUser.homepos.Y.ToString(); 263 SimParams["startpos_y"] = theUser.homepos.Y.ToString();
264 SimParams["startpos_z"] = theUser.homepos.Z.ToString(); 264 SimParams["startpos_z"] = theUser.homepos.Z.ToString();
265 ArrayList SendParams = new ArrayList(); 265 ArrayList SendParams = new ArrayList();
266 SendParams.Add(SimParams); 266 SendParams.Add(SimParams);
267 267
diff --git a/prebuild.xml b/prebuild.xml
index 009721a..ae19e7a 100644
--- a/prebuild.xml
+++ b/prebuild.xml
@@ -494,8 +494,9 @@
494 <Reference name="System.Xml" localCopy="false"/> 494 <Reference name="System.Xml" localCopy="false"/>
495 <Reference name="OpenSim.Framework"/> 495 <Reference name="OpenSim.Framework"/>
496 <Reference name="OpenSim.Framework.Console"/> 496 <Reference name="OpenSim.Framework.Console"/>
497 <Reference name="OpenSim.Servers"/> 497 <Reference name="OpenGrid.Framework.Data"/>
498 <Reference name="libsecondlife.dll"/> 498 <Reference name="OpenSim.Servers"/>
499 <Reference name="libsecondlife.dll"/>
499 <Reference name="Db4objects.Db4o.dll"/> 500 <Reference name="Db4objects.Db4o.dll"/>
500 <Reference name="XMLRPC"/> 501 <Reference name="XMLRPC"/>
501 502