aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules
diff options
context:
space:
mode:
authorMelanie2013-06-13 02:49:43 +0100
committerMelanie2013-06-13 02:49:43 +0100
commit9975c5674c002be0e17db02b589c388b684f63a9 (patch)
treeaa727252685987781696db21f9eee58dd6b6d023 /OpenSim/Region/CoreModules
parentMerge branch 'master' into careminster (diff)
parentMerge branch 'master' of ssh://opensimulator.org/var/git/opensim (diff)
downloadopensim-SC-9975c5674c002be0e17db02b589c388b684f63a9.zip
opensim-SC-9975c5674c002be0e17db02b589c388b684f63a9.tar.gz
opensim-SC-9975c5674c002be0e17db02b589c388b684f63a9.tar.bz2
opensim-SC-9975c5674c002be0e17db02b589c388b684f63a9.tar.xz
Merge branch 'master' into careminster
Diffstat (limited to 'OpenSim/Region/CoreModules')
-rw-r--r--OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs102
-rw-r--r--OpenSim/Region/CoreModules/ServiceConnectorsOut/Asset/Tests/AssetConnectorTests.cs64
2 files changed, 92 insertions, 74 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
index 1e70b84..864e181 100644
--- a/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
+++ b/OpenSim/Region/CoreModules/Framework/UserManagement/UserManagementModule.cs
@@ -476,71 +476,71 @@ namespace OpenSim.Region.CoreModules.Framework.UserManagement
476 UserData oldUser; 476 UserData oldUser;
477 //lock the whole block - prevent concurrent update 477 //lock the whole block - prevent concurrent update
478 lock (m_UserCache) 478 lock (m_UserCache)
479 m_UserCache.TryGetValue(id, out oldUser);
480
481 if (oldUser != null)
479 { 482 {
480 m_UserCache.TryGetValue (id, out oldUser); 483 if (creatorData == null || creatorData == String.Empty)
481 if (oldUser != null)
482 { 484 {
483 if (creatorData == null || creatorData == String.Empty) 485 //ignore updates without creator data
484 { 486 return;
485 //ignore updates without creator data
486 return;
487 }
488
489 //try update unknown users
490 //and creator's home URL's
491 if ((oldUser.FirstName == "Unknown" && !creatorData.Contains ("Unknown")) || (oldUser.HomeURL != null && !creatorData.StartsWith (oldUser.HomeURL)))
492 {
493 m_UserCache.Remove (id);
494 m_log.DebugFormat("[USER MANAGEMENT MODULE]: Re-adding user with id {0}, creatorData [{1}] and old HomeURL {2}", id, creatorData, oldUser.HomeURL);
495 }
496 else
497 {
498 //we have already a valid user within the cache
499 return;
500 }
501 } 487 }
502 488
503 UserAccount account = m_Scenes[0].UserAccountService.GetUserAccount (m_Scenes [0].RegionInfo.ScopeID, id); 489 //try update unknown users
504 490 //and creator's home URL's
505 if (account != null) 491 if ((oldUser.FirstName == "Unknown" && !creatorData.Contains("Unknown")) || (oldUser.HomeURL != null && !creatorData.StartsWith(oldUser.HomeURL)))
506 { 492 {
507 AddUser (id, account.FirstName, account.LastName); 493 lock (m_UserCache)
494 m_UserCache.Remove(id);
495 m_log.DebugFormat("[USER MANAGEMENT MODULE]: Re-adding user with id {0}, creatorData [{1}] and old HomeURL {2}", id, creatorData, oldUser.HomeURL);
508 } 496 }
509 else 497 else
510 { 498 {
511 UserData user = new UserData (); 499 //we have already a valid user within the cache
512 user.Id = id; 500 return;
501 }
502 }
513 503
514 if (creatorData != null && creatorData != string.Empty) 504 UserAccount account = m_Scenes[0].UserAccountService.GetUserAccount(m_Scenes[0].RegionInfo.ScopeID, id);
515 { 505
516 //creatorData = <endpoint>;<name> 506 if (account != null)
507 {
508 AddUser(id, account.FirstName, account.LastName);
509 }
510 else
511 {
512 UserData user = new UserData();
513 user.Id = id;
517 514
518 string[] parts = creatorData.Split (';'); 515 if (creatorData != null && creatorData != string.Empty)
519 if (parts.Length >= 1) 516 {
517 //creatorData = <endpoint>;<name>
518
519 string[] parts = creatorData.Split(';');
520 if (parts.Length >= 1)
521 {
522 user.HomeURL = parts[0];
523 try
520 { 524 {
521 user.HomeURL = parts [0]; 525 Uri uri = new Uri(parts[0]);
522 try 526 user.LastName = "@" + uri.Authority;
523 { 527 }
524 Uri uri = new Uri (parts [0]); 528 catch (UriFormatException)
525 user.LastName = "@" + uri.Authority; 529 {
526 } 530 m_log.DebugFormat("[SCENE]: Unable to parse Uri {0}", parts[0]);
527 catch (UriFormatException) 531 user.LastName = "@unknown";
528 {
529 m_log.DebugFormat ("[SCENE]: Unable to parse Uri {0}", parts [0]);
530 user.LastName = "@unknown";
531 }
532 } 532 }
533 if (parts.Length >= 2)
534 user.FirstName = parts [1].Replace (' ', '.');
535 }
536 else
537 {
538 user.FirstName = "Unknown";
539 user.LastName = "UserUMMAU";
540 } 533 }
541 534 if (parts.Length >= 2)
542 AddUserInternal (user); 535 user.FirstName = parts[1].Replace(' ', '.');
543 } 536 }
537 else
538 {
539 user.FirstName = "Unknown";
540 user.LastName = "UserUMMAU";
541 }
542
543 AddUserInternal(user);
544 } 544 }
545 } 545 }
546 546
diff --git a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Asset/Tests/AssetConnectorTests.cs b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Asset/Tests/AssetConnectorTests.cs
index 7073433..4f75191 100644
--- a/OpenSim/Region/CoreModules/ServiceConnectorsOut/Asset/Tests/AssetConnectorTests.cs
+++ b/OpenSim/Region/CoreModules/ServiceConnectorsOut/Asset/Tests/AssetConnectorTests.cs
@@ -42,7 +42,7 @@ using OpenSim.Tests.Common;
42namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset.Tests 42namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset.Tests
43{ 43{
44 [TestFixture] 44 [TestFixture]
45 public class AssetConnectorsTests : OpenSimTestCase 45 public class AssetConnectorTests : OpenSimTestCase
46 { 46 {
47 [Test] 47 [Test]
48 public void TestAddAsset() 48 public void TestAddAsset()
@@ -77,7 +77,6 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset.Tests
77 // TODO: Add cache and check that this does receive a copy of the asset 77 // TODO: Add cache and check that this does receive a copy of the asset
78 } 78 }
79 79
80 [Test]
81 public void TestAddTemporaryAsset() 80 public void TestAddTemporaryAsset()
82 { 81 {
83 TestHelpers.InMethod(); 82 TestHelpers.InMethod();
@@ -93,10 +92,45 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset.Tests
93 LocalAssetServicesConnector lasc = new LocalAssetServicesConnector(); 92 LocalAssetServicesConnector lasc = new LocalAssetServicesConnector();
94 lasc.Initialise(config); 93 lasc.Initialise(config);
95 94
96 // If it is local, it should not be stored 95 // If it is remote, it should be stored
96 AssetBase a2 = AssetHelpers.CreateNotecardAsset();
97 a2.Local = false;
98 a2.Temporary = true;
99
100 lasc.Store(a2);
101
102 AssetBase retreivedA2 = lasc.Get(a2.ID);
103 Assert.That(retreivedA2.ID, Is.EqualTo(a2.ID));
104 Assert.That(retreivedA2.Metadata.ID, Is.EqualTo(a2.Metadata.ID));
105 Assert.That(retreivedA2.Data.Length, Is.EqualTo(a2.Data.Length));
106
107 AssetMetadata retrievedA2Metadata = lasc.GetMetadata(a2.ID);
108 Assert.That(retrievedA2Metadata.ID, Is.EqualTo(a2.ID));
109
110 byte[] retrievedA2Data = lasc.GetData(a2.ID);
111 Assert.That(retrievedA2Data.Length, Is.EqualTo(a2.Data.Length));
112
113 // TODO: Add cache and check that this does receive a copy of the asset
114 }
115
116 [Test]
117 public void TestAddLocalAsset()
118 {
119 TestHelpers.InMethod();
120// TestHelpers.EnableLogging();
121
122 IConfigSource config = new IniConfigSource();
123 config.AddConfig("Modules");
124 config.Configs["Modules"].Set("AssetServices", "LocalAssetServicesConnector");
125 config.AddConfig("AssetService");
126 config.Configs["AssetService"].Set("LocalServiceModule", "OpenSim.Services.AssetService.dll:AssetService");
127 config.Configs["AssetService"].Set("StorageProvider", "OpenSim.Tests.Common.dll");
128
129 LocalAssetServicesConnector lasc = new LocalAssetServicesConnector();
130 lasc.Initialise(config);
131
97 AssetBase a1 = AssetHelpers.CreateNotecardAsset(); 132 AssetBase a1 = AssetHelpers.CreateNotecardAsset();
98 a1.Local = true; 133 a1.Local = true;
99 a1.Temporary = true;
100 134
101 lasc.Store(a1); 135 lasc.Store(a1);
102 136
@@ -104,29 +138,11 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset.Tests
104 Assert.That(lasc.GetData(a1.ID), Is.Null); 138 Assert.That(lasc.GetData(a1.ID), Is.Null);
105 Assert.That(lasc.GetMetadata(a1.ID), Is.Null); 139 Assert.That(lasc.GetMetadata(a1.ID), Is.Null);
106 140
107 // If it is remote, it should be stored
108 // AssetBase a2 = AssetHelpers.CreateNotecardAsset();
109 // a2.Local = false;
110 // a2.Temporary = true;
111
112 // lasc.Store(a2);
113
114 // AssetBase retreivedA2 = lasc.Get(a2.ID);
115 // Assert.That(retreivedA2.ID, Is.EqualTo(a2.ID));
116 // Assert.That(retreivedA2.Metadata.ID, Is.EqualTo(a2.Metadata.ID));
117 // Assert.That(retreivedA2.Data.Length, Is.EqualTo(a2.Data.Length));
118
119 // AssetMetadata retrievedA2Metadata = lasc.GetMetadata(a2.ID);
120 // Assert.That(retrievedA2Metadata.ID, Is.EqualTo(a2.ID));
121
122 // byte[] retrievedA2Data = lasc.GetData(a2.ID);
123 // Assert.That(retrievedA2Data.Length, Is.EqualTo(a2.Data.Length));
124
125 // TODO: Add cache and check that this does receive a copy of the asset 141 // TODO: Add cache and check that this does receive a copy of the asset
126 } 142 }
127 143
128 [Test] 144 [Test]
129 public void TestAddLocalAsset() 145 public void TestAddTemporaryLocalAsset()
130 { 146 {
131 TestHelpers.InMethod(); 147 TestHelpers.InMethod();
132// TestHelpers.EnableLogging(); 148// TestHelpers.EnableLogging();
@@ -141,8 +157,10 @@ namespace OpenSim.Region.CoreModules.ServiceConnectorsOut.Asset.Tests
141 LocalAssetServicesConnector lasc = new LocalAssetServicesConnector(); 157 LocalAssetServicesConnector lasc = new LocalAssetServicesConnector();
142 lasc.Initialise(config); 158 lasc.Initialise(config);
143 159
160 // If it is local, it should not be stored
144 AssetBase a1 = AssetHelpers.CreateNotecardAsset(); 161 AssetBase a1 = AssetHelpers.CreateNotecardAsset();
145 a1.Local = true; 162 a1.Local = true;
163 a1.Temporary = true;
146 164
147 lasc.Store(a1); 165 lasc.Store(a1);
148 166