[Glass] Help defining gemstone users for a multi-user app

Dale K. Henrichs dale.henrichs at gemtalksystems.com
Mon Jan 6 14:24:21 PST 2014

----- Original Message -----

| From: "Mariano Martinez Peck" <marianopeck at gmail.com>
| To: "Dale K. Henrichs" <dale.henrichs at gemtalksystems.com>
| Cc: glass at lists.gemtalksystems.com
| Sent: Monday, January 6, 2014 1:02:17 PM
| Subject: Re: [Glass] Help defining gemstone users for a multi-user
| app

| On Mon, Jan 6, 2014 at 1:34 PM, Dale K. Henrichs <
| dale.henrichs at gemtalksystems.com > wrote:

| | If you are going to share code between users, then I would suggest
| | that you start by installing the GLASS/seaside code into a
| | SymbolList that is not UserGlobals and perhaps even use a Gemstone
| | user that is not DataCurator.

| OK...

| | The attached script creates a 'glass' user with the same
| | permissions
| | as DataCurator and loads the GLASS code (starting with a
| | $GEMSTONE/bin/extent0.dbf) into a GLASS SymbolDictionary.

| Dale, I have just tried that and indeed it was quite helpful. At
| least, I was able to create a user with DataCurator like privileges,
| load my code there, and run my app. So I could have "two instances
| of my app running with 2 different gemstone users". So it was quite
| a good step.
| A few notes:

| 1) could this script be committed somewhere to the public? Maybe to
| the same place were you were grouping scripts like the purge logs
| from Norbert?
I've submmitted an Issue[1] as a reminder to clean up script and publish... 

[1] https://github.com/glassdb/glass/issues/16 

| 2) I had to execute: "export upgradeDir=$GEMSTONE/upgrade" before
| running the script..otherwise, #upgradeDir doesn't exist.
| 3) After finishing the load, I noticed that I have 2 entries called
| 'GLASS' in my SymbolList. In addition, the SystemDictionary created
| for #'GLASS' was actually a SymbolDictionary whose key was #'GLASS'
| and the value was a reference to itself (the SymbolDictionary). So
| class in there..... In fact, classes were loaded into the third
| dictionary, which is....UserGlobals. I guess something is wrong here
| since I expect all glass classes to be in #'GLASS' SymbolDictionary,
| right?
I'll have to take a closer look at the results of the script ... SymbolDictionaries will have a self-referencing association with the name of the symbollist ... by design ... Not sure about the the two entries in the Symbol list with GLAS, tho... 

I did cobble together this script form some other scripts that I use (without testing) so I will have to look a little bit closer at the source scripts and this one ... 

Appreciate the feedback .. 

| | Once you've done this, you can arrange to install the glass users's
| | #GLASS SymbolDictionary into another users SymbolList and thus
| | share
| | the code ... The `web` user will have to have write permission on
| | all of the slots of the Seaside code, so it might make sense to
| | load
| | the seaside code into the `web` users space directory ...

| | I have to get ready for work right now, so the additional
| | instructions will have to wait:)

| | In the meantime, though I would like to better understand the
| | rationale for separate GemStone users ... things will be much
| | simpler if you done have separate users, so I would think that
| | you'd
| | need a good reason for the extra hassle:)

| Well, the reason so far is security. Mostly because users are able to
| define they own rules. I answered this later on in another entry of
| this thread.

Yes I saw that ... and it makes sense to use the GemStone users to secure your data from the prying eyes of other users... 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20140106/dafce1be/attachment.html>

More information about the Glass mailing list