Features
D4os is a set of drupal modules to manage an OpenSimulator grid or standalone users management.
The new 2012 version was completely rewriten to be lighter and speak to the grid only if necessary.
| Module | Feature |
|---|---|
| db 070 | database direct access for a 0.7.x grid system (multiple bases, multiple tables prefixes) |
| REST | distant grid hosting a special code based on CodeIgniter. |
| Groups |
|
| Offline messages |
|
| Profiles |
|
| Auth |
|
| Users |
|
| Web profiles | Allow the user to edit inworld profile from the website (going to : user/UID/profile/inworld) |
| Grid monitoring | Gives 2 blocks to display the classical grid info and grid status |
| Users monitoring | Display a table showing the online users list for administrators (or anybody else, depending on role permissions) |
| Loginpage | Generate a loginpage (splash screen) for the viewer |
The modules are separated in 2 categories :
- ui (that is managing user interfaces with the website)
- io (that is managing input/outputs between the Drupal website and the grid)
The io modules contains :
- connectors (these are the connectors used to communicate between the Drupal website and the grid.)
- services (these are some extra modules using OpenSim external modules)
The ui modules contains :
- users (to manage user registrations and modification)
- profiles (to display and edit inworld profile from the website)
- monitoring (to display some tools to get infos from the grid)
- extra (some other extra modules)
IO Connectors
Actually, you can use it in 2 modes (but this is easy to add other modes for any developper)
- db 070 (database direct access for a 0.7.x grid system)
- REST (distant grid hosting a special code based on CodeIgniter.)
Admin page : ( admin/settings/d4os/io/connectors )
If you want to use a direct acces to the database, you just need to enter database informations (Be carefull and check 2 times before submitting the form because if the website will not be able to reach the database, it will hang on and you will need to update the values in the website database (i have not found a way to check before submiting the form for the moment)
If your grid is on a distant machine, you can select REST system. (you need to enter the url to the CodeIgniter engine set up) (copy or move the files located in sites/all/modules/d4os/io/connectors/rest/move_to_ci to your CodeIgniter application folder and set up the database like any CodeIgniter installation)
IO Services
There are 3 modules
Groups
Admin page : admin/settings/d4os/io/groups
- Add the user to a default group when the user is registering on the grid using the website.
- Remove the user from the groups when the user is deleted from the website.
Offline messages
Admin page : admin/settings/d4os/io/services/offline_messages
Url to add to OpenSim.ini : http://yourwebsite.com/d4os/grid/services/offline-messages/
- Manage inworld offline messages
- Send an email to the offline user if defined on his inworld user profile (using "chat" tab in the preferences from the client)
- Ability to filter messages coming from any dialog message (you can add dialog messages id to filter)
- Ability to filter group messages
- Ability to filter by uuids to restrict objects or groups or users.
Profiles
Admin page : admin/settings/d4os/io/profiles/registration
- Add a default user profile when the user is registering on the grid using the website.
- Delete the user profile/classifieds/picks/user notes/ user settings when a user is deleted from the website.
UI Users
Auth
Admin page : admin/settings/d4os/ui/auth
-
Define the login flow on the website
- (for example, if using the mode : drupal->grid, when a user is trying to log in the website, the check is asking if the user is registered on the website, and if yes, the user is simply logged on. If no, it is asking to the grid and if yes, it will create a new user on the website using the grid informations)
- Assign a role when creating the new user on the website using the grid informations.
- Assign a default email address to the user when creating the user on the website if the user has no email address on the grid.
Users
Admin page : admin/settings/d4os/ui/users
- Assign a user level to users using Drupal roles
- Define models for users registration
- Assign Drupal role to new grid users
- Get all the region owners using cron and assign then a Drupal role.
- Define default home values to new grid uses.
Web profiles
Admin page : admin/settings/d4os/ui/profiles/inworld
- Allow the user to edit inworld profile from the website (going to : user/UID/profile/inworld)
UI Monitoring
Grid status
- Gives 2 blocks to display the classical grid info and grid status
Monitor users
Link to the view : grid/monitor/users/online/list
- Display a table showing the online users list for administrators (or anybody else, depending on role permissions)
UI Extra
Login page
Link to the loginpage to give to OpenSim configuration : http://yourwebsite.com/loginpage
- Generate a loginpage (splash screen) for the viewer
This page is using Drupal theming system so you can copy paste the files d4os-ui-loginpage.tpl.php and d4os-ui-loginpage.css to your website theme folder and edit them to include any Drupal content (by default, it is showing the content of the node 1 and show borders in green if the grid is online and red if the grid is offline :) )
What else ?
- I have done that for friends and for fun for free.
- When i have seen that the previous release was not well done, i wanted to rewrite it but did not have time to do it during 2011 because of irl job and i had free time only in the middle of january 2012, so i took everything and made it again.
- I plan for sure to port this to Drupal 7 but i dont know when.
- If you find bugs, please, please, please, contact me or fill an issue in the github issue tracker (im often available in #d4os on the freenode server too)
- If you think that this is crap, not well done or not finished, instead of speaking around, fill an issue or, better, build your own one and make like me, give it for free to the world to see what the other will say about your one and if this is better than this one, that is cool, i will use your one and have more time to watch lolcats videos :)
- I hope that this code will be usefull for altruist people and a nightmare for the ones using copies to make business without giving nothing to the opensource community (yes, yes, i have seen some...).