Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0008656opensim[REGION] Script Functionspublic2020-02-08 03:472020-11-15 20:14
Assigned To 
PlatformPCOperating SystemWindowsOperating System Version10
Product Version 
Target VersionFixed in Version 
Summary0008656: osDetectedCountry and osGetAgentCountry return empty response
DescriptionAfter your changes in: [^]

I tested these 2 functions again.
Unfortunately the 2 always return an empty string
Steps To ReproduceExemple script @:
- [^]
- [^]
Additional InformationTested on XEngine only.
TagsNo tags attached.
Git Revision or version number
Run Mode Grid (Multiple Regions per Sim)
Physics EngineubODE
Script EngineXEngine
Mono VersionNone
Attached Files

- Relationships
parent of 0008810new osGetAgentCountry ... 
Not all the children of this issue are yet resolved or closed.

-  Notes
UbitUmarov (administrator)
2020-02-08 03:59

that commit only added a missing operation
country still needs to be provided into user db by other means ( ie like at web side user creation)
djphil (reporter)
2020-02-08 04:04

This is not a detection based on the user's IP address?
There are public geolocalisation api/databases for this ...
UbitUmarov (administrator)
2020-02-08 04:07

no it is not
djphil (reporter)
2020-02-08 04:29
edited on: 2020-02-08 04:30

Ok, so we have to add a "country" field in our registration form ... no problem for that but in which database table we have to save this country information.
Is this in an existing OpenSim database or do we also have to create the dedicated database for this and in this case what is the name and the structure of this database?

tampa (reporter)
2020-02-08 04:30

If it was using a geolocation service that service could stop supplying data or shutdown entirely and that would break the function.

Since this is just a field in the db you can crawl your robust log for the user, fetch the IP and run that through the geolocation service of your choice and then have it supply the data to the db or insert it at user creating using a custom script.
djphil (reporter)
2020-02-08 04:32

What field of db are you talking about exactly Tampa?
Couldn't you be more specific, database name, table name, field name ...?
djphil (reporter)
2020-02-08 04:36
edited on: 2020-02-08 04:49

Shouldn't the Opensim wiki explain all of this clearly?
Provide the information necessary for users who wish to operate these 2 functions.
Optionally provide an example script etc ...

Current information is very imprecise.
A phrase only without real useful information ...

djphil (reporter)
2020-02-08 05:21

@Tampa : These are static data, they do not change much.
This service ( [^]) provides a database in CSV format for free and there are many others like this ...

You can download it for yourself ... and you can never crash again (lol)
aiaustin (developer)
2020-02-08 06:10

Any country information stored with personal data needs to be done with consent and possibly allow a “Not Stated” option. You have no idea about the personal situation of a user and should assume they are best placed to decide if this information should be given. Also IP addresses are approximate, VPN can be in use, etc. It is better not to have data than have inaccurate or assumed data.
djphil (reporter)
2020-02-08 06:21

No one I know has created a GDPR module ... you may know one ?
Maybe AuthorizationService can fill that up ...
aiaustin (developer)
2020-02-08 06:33
edited on: 2020-02-08 06:48

Information on what some folks are doing for consent and informing users on what is collected was noted by Maria Korolov at [^]

In the case of our own (small) grids we just inform people what is stored, how its disposed of and provide a contact point so that users can raise any concerns. [^]

tampa (reporter)
2020-02-08 06:38

Er... well see the thing here is you already have the IP, you need that to establish the service connection and service-based data is excluded, so you don't need to get consent from the user for that, because the non-consent would break the service access as is.

However, when you start to associate data like the IP with a country then you need to get consent for that. This is where it gets tricky. Technically you should ask for consent to associate the IP with a country because more often than not you then use that to tailor something to the user or sell that association to someone for example. Since the only thing you do with that is your own statistics technically you don't explicitly have to, but since you then open up this data to third-party via the function to fetch the users country info you must ask for consent for that.

Frankly, unless you actually do something more with the data and associate it with other stuff you don't need to ask for consent, because all data OpenSim sends about is needed to establish the service in the first place so non-consent is effectively the same as not logging in(that's your consent right there) a simple checkbox with the link to the privacy policy explicitly stating what data is used to establish the OpenSim service is enough.

Besides, unless you have thousands of users and hundred thousands in income the most you will get is a letter asking to explain your data usage, there is a minimum amount of "bad" you need to do before anyone can get you fined and most grids don't exceed that by a long shot. The GDPR was meant to get the tech-giants to pony up the fines for being such pricks selling our data and making billions on the back of unsuspecting users, not to fine the little guy into oblivion.

So just as djphil is asking, where is that db field? I can't find it either
djphil (reporter)
2020-02-08 06:44
edited on: 2020-11-15 18:56

This is what we can do with the AuthorizationService ...

@Tampa : On UserAccounts database i can see UserLevel, UserFlags and UserTitle only ... no "UserCountry" available.
I imagine it should be somewhere around there ... but you know I always imagine a lot of things without really knowing :p

BillBlight (developer)
2020-11-15 19:00
edited on: 2020-11-15 19:00

Actually several grids were doing GDPR consent, I even made a skeleton of a GDPR auth and posted it a long time ago ..

Many people were really up in arms about the one or two clicks to HG via GDPR consent , which was usually only once per grid/per avatar...

I even think you played with my auth solution djphil

djphil (reporter)
2020-11-15 19:02

I imagine you are talking about [^]
and the Sacha spaghetti project ?
BillBlight (developer)
2020-11-15 19:05
edited on: 2020-11-15 19:06

Yeah , it looked like crap but it worked, maybe you should make a better one ..

Mine was based off the jOpensim auth module which can be used for GDPR

djphil (reporter)
2020-11-15 19:10

You had to branch "djphil" if I remember correctly.
But is this project still accessible to the public, I don't know ...
Maybe I should wear it on my github so that it will share with everyone.
BillBlight (developer)
2020-11-15 19:12

Hasn't gone anywhere .. I saw no need to keep messing with it, did not want to deal with people complaining about the extra click or two .. [^]
djphil (reporter)
2020-11-15 20:14
edited on: 2020-11-15 21:12

It seems that Opensim migration does not add the "UserCountry" field automatically.
(I am talking about the current Master Dev Code)
So I did it manually for now ...

For aesthetic reasons I added "UserCountry" after the "UserTitle" field instead of simply adding it after the "active" field.

I then found that this field does not automatically fill in either.
I concluded that this was not currently managed by Opensim.
I then filled the field manually too and hooo miracle it finally worked.

One thing remains to be clarified, how should we proceed correctly to complete this field other than manually.

- Do we need to provide an additional field in a registration form
- Should we automate this when registering using a service external to opensim such as [^] or similar?
- Will it be added to opensim soon ?

- Issue History
Date Modified Username Field Change
2020-02-08 03:47 djphil New Issue
2020-02-08 03:59 UbitUmarov Note Added: 0036168
2020-02-08 04:04 djphil Note Added: 0036169
2020-02-08 04:07 UbitUmarov Note Added: 0036170
2020-02-08 04:29 djphil Note Added: 0036171
2020-02-08 04:30 tampa Note Added: 0036172
2020-02-08 04:30 djphil Note Edited: 0036171 View Revisions
2020-02-08 04:32 djphil Note Added: 0036173
2020-02-08 04:36 djphil Note Added: 0036174
2020-02-08 04:47 djphil Note Edited: 0036174 View Revisions
2020-02-08 04:49 djphil Note Edited: 0036174 View Revisions
2020-02-08 05:21 djphil Note Added: 0036175
2020-02-08 06:10 aiaustin Note Added: 0036176
2020-02-08 06:21 djphil Note Added: 0036177
2020-02-08 06:33 aiaustin Note Added: 0036178
2020-02-08 06:38 tampa Note Added: 0036179
2020-02-08 06:44 djphil Note Added: 0036180
2020-02-08 06:47 aiaustin Note Edited: 0036178 View Revisions
2020-02-08 06:48 aiaustin Note Edited: 0036178 View Revisions
2020-02-08 06:50 djphil Note Edited: 0036180 View Revisions
2020-02-08 06:50 djphil Note Edited: 0036180 View Revisions
2020-11-15 18:39 djphil Relationship added parent of 0008810
2020-11-15 18:56 djphil Note Edited: 0036180 View Revisions
2020-11-15 19:00 BillBlight Note Added: 0037154
2020-11-15 19:00 BillBlight Note Edited: 0037154 View Revisions
2020-11-15 19:02 djphil Note Added: 0037155
2020-11-15 19:05 BillBlight Note Added: 0037156
2020-11-15 19:06 BillBlight Note Edited: 0037156 View Revisions
2020-11-15 19:10 djphil Note Added: 0037157
2020-11-15 19:12 BillBlight Note Added: 0037158
2020-11-15 20:14 djphil Note Added: 0037160
2020-11-15 21:12 djphil Note Edited: 0037160 View Revisions

Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker