diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs | 76 |
1 files changed, 67 insertions, 9 deletions
diff --git a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs index b72ef04..ecdbb52 100644 --- a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs +++ b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs | |||
@@ -948,6 +948,32 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
948 | throw new Exception(String.Format("failed to create new user {0} {1}", | 948 | throw new Exception(String.Format("failed to create new user {0} {1}", |
949 | firstname, lastname)); | 949 | firstname, lastname)); |
950 | 950 | ||
951 | // User has been created. Now establish gender and appearance. | ||
952 | // Default appearance is 'Default Male'. Specifying gender can | ||
953 | // establish "Default Female". Specifying a specific model can | ||
954 | // establish a specific appearance without regard for gender. | ||
955 | |||
956 | try | ||
957 | { | ||
958 | string model = "Default Male"; | ||
959 | if (requestData.Contains("gender")) | ||
960 | if ((string)requestData["gender"] == "f") | ||
961 | model = "Default Female"; | ||
962 | |||
963 | if (requestData.Contains("model")) | ||
964 | model = (string)requestData["model"]; | ||
965 | |||
966 | string[] uname = model.Split(); | ||
967 | UserProfileData udata = m_app.CommunicationsManager.UserService.GetUserProfile(uname[0],uname[1]); | ||
968 | AvatarAppearance ava = m_app.CommunicationsManager.AvatarService.GetUserAppearance(udata.ID); | ||
969 | m_app.CommunicationsManager.AvatarService.UpdateUserAppearance(userID, ava); | ||
970 | |||
971 | } | ||
972 | catch (Exception e) | ||
973 | { | ||
974 | m_log.ErrorFormat("[RADMIN] Error establishing initial appearance : {0}", e.Message); | ||
975 | } | ||
976 | |||
951 | responseData["success"] = "true"; | 977 | responseData["success"] = "true"; |
952 | responseData["avatar_uuid"] = userID.ToString(); | 978 | responseData["avatar_uuid"] = userID.ToString(); |
953 | 979 | ||
@@ -1170,6 +1196,38 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1170 | if (String.Empty != aboutFirstLive) userProfile.FirstLifeAboutText = aboutFirstLive; | 1196 | if (String.Empty != aboutFirstLive) userProfile.FirstLifeAboutText = aboutFirstLive; |
1171 | if (String.Empty != aboutAvatar) userProfile.AboutText = aboutAvatar; | 1197 | if (String.Empty != aboutAvatar) userProfile.AboutText = aboutAvatar; |
1172 | 1198 | ||
1199 | // User has been created. Now establish gender and appearance. | ||
1200 | // Default appearance is 'Default Male'. Specifying gender can | ||
1201 | // establish "Default Female". Specifying a specific model can | ||
1202 | // establish a specific appearance without regard for gender. | ||
1203 | |||
1204 | try | ||
1205 | { | ||
1206 | string model = "*none*"; | ||
1207 | if (requestData.Contains("gender")) | ||
1208 | { | ||
1209 | if ((string)requestData["gender"] == "f") | ||
1210 | model = "Default Female"; | ||
1211 | else | ||
1212 | model = "Default Male"; | ||
1213 | } | ||
1214 | |||
1215 | if (requestData.Contains("model")) | ||
1216 | model = (string)requestData["model"]; | ||
1217 | |||
1218 | if (model != "*none*") | ||
1219 | { | ||
1220 | string[] uname = model.Split(); | ||
1221 | UserProfileData udata = m_app.CommunicationsManager.UserService.GetUserProfile(uname[0],uname[1]); | ||
1222 | AvatarAppearance ava = m_app.CommunicationsManager.AvatarService.GetUserAppearance(udata.ID); | ||
1223 | m_app.CommunicationsManager.AvatarService.UpdateUserAppearance(userProfile.ID, ava); | ||
1224 | } | ||
1225 | } | ||
1226 | catch (Exception e) | ||
1227 | { | ||
1228 | m_log.ErrorFormat("[RADMIN] Error establishing initial appearance : {0}", e.Message); | ||
1229 | } | ||
1230 | |||
1173 | if (!m_app.CommunicationsManager.UserService.UpdateUserProfile(userProfile)) | 1231 | if (!m_app.CommunicationsManager.UserService.UpdateUserProfile(userProfile)) |
1174 | throw new Exception("did not manage to update user profile"); | 1232 | throw new Exception("did not manage to update user profile"); |
1175 | 1233 | ||
@@ -1744,21 +1802,21 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1744 | 1802 | ||
1745 | int addk = 0; | 1803 | int addk = 0; |
1746 | 1804 | ||
1747 | if(requestData.Contains("users")) | 1805 | if (requestData.Contains("users")) |
1748 | { | 1806 | { |
1749 | UserProfileCacheService ups = m_app.CommunicationsManager.UserProfileCacheService; | 1807 | UserProfileCacheService ups = m_app.CommunicationsManager.UserProfileCacheService; |
1750 | Scene s = m_app.SceneManager.CurrentScene; | 1808 | Scene s = m_app.SceneManager.CurrentScene; |
1751 | Hashtable users = (Hashtable) requestData["users"]; | 1809 | Hashtable users = (Hashtable) requestData["users"]; |
1752 | List<UUID> uuids = new List<UUID>(); | 1810 | List<UUID> uuids = new List<UUID>(); |
1753 | foreach(string name in users.Values) | 1811 | foreach (string name in users.Values) |
1754 | { | 1812 | { |
1755 | string[] parts = name.Split(); | 1813 | string[] parts = name.Split(); |
1756 | uuids.Add(ups.GetUserDetails(parts[0],parts[1]).UserProfile.ID); | 1814 | uuids.Add(ups.GetUserDetails(parts[0],parts[1]).UserProfile.ID); |
1757 | } | 1815 | } |
1758 | List<UUID> acl = new List<UUID>(s.RegionInfo.EstateSettings.EstateAccess); | 1816 | List<UUID> acl = new List<UUID>(s.RegionInfo.EstateSettings.EstateAccess); |
1759 | foreach(UUID uuid in uuids) | 1817 | foreach (UUID uuid in uuids) |
1760 | { | 1818 | { |
1761 | if(!acl.Contains(uuid)) | 1819 | if (!acl.Contains(uuid)) |
1762 | { | 1820 | { |
1763 | acl.Add(uuid); | 1821 | acl.Add(uuid); |
1764 | addk++; | 1822 | addk++; |
@@ -1823,21 +1881,21 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1823 | 1881 | ||
1824 | int remk = 0; | 1882 | int remk = 0; |
1825 | 1883 | ||
1826 | if(requestData.Contains("users")) | 1884 | if (requestData.Contains("users")) |
1827 | { | 1885 | { |
1828 | UserProfileCacheService ups = m_app.CommunicationsManager.UserProfileCacheService; | 1886 | UserProfileCacheService ups = m_app.CommunicationsManager.UserProfileCacheService; |
1829 | Scene s = m_app.SceneManager.CurrentScene; | 1887 | Scene s = m_app.SceneManager.CurrentScene; |
1830 | Hashtable users = (Hashtable) requestData["users"]; | 1888 | Hashtable users = (Hashtable) requestData["users"]; |
1831 | List<UUID> uuids = new List<UUID>(); | 1889 | List<UUID> uuids = new List<UUID>(); |
1832 | foreach(string name in users.Values) | 1890 | foreach (string name in users.Values) |
1833 | { | 1891 | { |
1834 | string[] parts = name.Split(); | 1892 | string[] parts = name.Split(); |
1835 | uuids.Add(ups.GetUserDetails(parts[0],parts[1]).UserProfile.ID); | 1893 | uuids.Add(ups.GetUserDetails(parts[0],parts[1]).UserProfile.ID); |
1836 | } | 1894 | } |
1837 | List<UUID> acl = new List<UUID>(s.RegionInfo.EstateSettings.EstateAccess); | 1895 | List<UUID> acl = new List<UUID>(s.RegionInfo.EstateSettings.EstateAccess); |
1838 | foreach(UUID uuid in uuids) | 1896 | foreach (UUID uuid in uuids) |
1839 | { | 1897 | { |
1840 | if(acl.Contains(uuid)) | 1898 | if (acl.Contains(uuid)) |
1841 | { | 1899 | { |
1842 | acl.Remove(uuid); | 1900 | acl.Remove(uuid); |
1843 | remk++; | 1901 | remk++; |
@@ -1905,7 +1963,7 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
1905 | UUID[] acl = s.RegionInfo.EstateSettings.EstateAccess; | 1963 | UUID[] acl = s.RegionInfo.EstateSettings.EstateAccess; |
1906 | Hashtable users = new Hashtable(); | 1964 | Hashtable users = new Hashtable(); |
1907 | 1965 | ||
1908 | foreach(UUID user in acl) | 1966 | foreach (UUID user in acl) |
1909 | { | 1967 | { |
1910 | users[user.ToString()] = | 1968 | users[user.ToString()] = |
1911 | m_app.CommunicationsManager.UserProfileCacheService.GetUserDetails(user).UserProfile.Name; | 1969 | m_app.CommunicationsManager.UserProfileCacheService.GetUserDetails(user).UserProfile.Name; |