Hi
We have been discussing the security model of SW2 lately and now we're
stuck. So this is your chance to say what you need, come up with
brilliant ideas or pull the emergency brake ;). We're open for anything,
don't hesitate to ask questions or make suggestions.
The stock SW2 does not have a security model. Maybe it will get one,
maybe not, if it gets one it will likely be very simple. Something like
locking of Swiki. But that does not mean there isn't a a security model
for SW2, you can load it from the MC repository below. This model is the
subject of this message.
MCHttpRepository
location: 'http://kilana.unibe.ch:8888/adl'
user: ''
password: ''
(contact me if you want write permission)
The Present
The system is based on access control lists which allow you to define a
set of access rules for a structure (page, file, component, ...). It is
already working and only has some minor glitches (you don't have to
confirm the password, stuff like that).
A rule looks like this:
<Principal> <Allow/Deny> <Action>
Principal: is either a user or a group
Allow/Deny: should be clear
Action: is either a command or set of commands referred as `Command Set'
which can be defined almost like a group.
So sample rules might look like this:
`students are not allowed to Edit'
`everyone is allowed to View'
`bob is allowed to Remove'
The non-abstract commands currently in my image are
generic commands for any structure
SW2AddCommand (add anything, file, page, component, ...)
SW2CopyCommand
SW2MoveCommand
SW2RemoveCommand
SW2ViewCommand
page related commands
SW2InplaceEditCommand
SW2EditPageCommand
file related commands
SW2EditFileCommand
component related commands
SW2SettingsComponentCommand
SW2EditComponentCommand
user management related commands
SVAddUMChildCommand (stupid name, add a user/group/command set)
SVEditUMChildCommand (stupid name as well, edit a user/group/command set)
access control related commands
SVCopyACLCommand
SVViewACLCommand
SVAddACLItemCommand
SVEditACLItemCommand
SVMoveACLItemCommand
SVRemoveACLItemCommand
always allowed
SVLoginCommand
SVRetryCommand
SVLogoutCommand
SVChangePasswordCommand (only change your own)
special users:
root, can do anything, not affected by any access rules
guest, aka anonymous, the user who is not logged in
special groups
everyone, includes every user
everyone but guest, any user who is logged in
special command sets
everything, includes all commands
The user management is a special structure named Management which is
attached to the root of the wiki like Environment (the meta wiki). A
user, a group, everything is a structure embedded into the wiki.
Root
\+ whatever
\+ Environment
\+ Management
\+ Users
\+ User1
\+ User2
\+ Groups
\+ Group1
\+ Group2
\+ Command Sets
\+ Command Set 1
Limitations
Because we just control commands and the add command is generic we can
not allow someone to add pages and deny adding of files to him at the
same time for the same structure. Is this a problem for anyone?
However we can allow someone to add users but deny adding of groups to him.
We don't do any form of spam or flood protection/recognition.
We have no concept of administrator or owner. Just root. You can create
a group administrators and add a rule `administrators are allowed to do
anything' to all structures (add it to root and check the box to add it
to all children), but if someone has the right to edit, add or remove
access rules he can disable this rule. That would require root to fix it.
The Future
Like you can redefine Environment for structures we are looking for a
way to redefine Management too in order to allow locally administrated
subwikis (like Zope). We have not started with this because we are still
struggling with the semantics (the actual reason for this mail).
The problems we have encountered so far are:
- Do we have a local root user a subwiki? How do we name it and how do
we name it in a subsubwiki?
- Are user names globally unique? Can you redefine users in a subwiki?
If yes what happens if a user enters a subwiki where he is redefined?
What if we leaves? What if a redefined subwiki user enters a superwiki?
- What happens if a subwiki user leaves his subwik (does he become
guest)? What if there exists a user with the same name?
- Who is allowed to add a new Management? This is an issue because the
Add command is generic and the Management is just a regular structure so
if you can add structures then you can add a Management too (we could
actually modify (read hack) the description of the Add command to
exclude Management and add a separated command for that). If a also
have a local root and initialize it's password with a default value (or
even ask the user) then you can get all the rights in this subwiki if
you have the add command.
- Do you see any case where you need this? (This is probably the most
important question of them all)
Another option we discussed lately was the possibility to just add users
and groups in the wiki instead of adding a Management but this doesn't
seem to make any difference or solve any problems.
What currently makes the most sense to me is:
Prevent adding of a Management with the Add command
(#isValidForAddCommand or something like that) and make an own command
for that. Which makes sense in the long term because certain kinds of
structures can only have or be child of certain kinds of other structures.
Make user names globally unique because this solves a lot a problems.
If you leave your subwiki you become guest.
However I'm still undecided on the subwikiroot.
Cheers
Philippe
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi,
I've just posted a new image with everything you need to start playing
with SmallWiki 2. It's based on the 3.9a-6690 image and use the last
Magritte/Smallwiki2 versions found on the Lukas repository.
You can always download the latest version on the following page:
http://smallwiki.unibe.ch/smallwiki/smallwiki2/installationofsmallwiki2/
Tell me if you have problems.
- --
Damien
,
/| __
/ | ,-~ /
Y :| // /
| jj /( .^
>-"~"-v"
/ Y
jo o |
( ~T~ j
>._-' _./
/ "~" |
Y _, |
/| ;-"~ _ l
/ l/ ,-"~ \
\//\/ .- \
Y / Y
l I !
]\ _\ /"\
(" ~----( ~ Y. )
~~~~~~~~~~~~~~~~~~~~~~~~~~
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFDJH6gyl2oT75/6woRAmV8AKC2WbvD5catJ2NXCDjEf8AcX1pTrQCgtjM9
glhYh8QiZiVpVHsxlYg2HHc=
=/4Ub
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
blg3(a)msstate.edu a écrit :
>I am trying to install and use SmallWiki2 under windows and Squeak. I
installed
>all the files as described on the website. Unfortunately I am still very
>unfamiliar with the SmallTalk language and unable to determine the issue
I am
>getting. But anytime I insert a Carriage return in the page I am editing
I get
>a parse error. Do you have any idea what could be causing this? I am using
>Internet Explorer the newest version as well. Please let me know if you can
>help me at all.
Here are the explanations for the pre-installed image found here:
http://smallwiki.unibe.ch/smallwiki/smallwiki2/installationofsmallwiki2/.
If you installed everything manually, it might change a bit. I will
soon (in a day or two) create a new pre-configured image with every
packages updated and this bug should disappear.
== Install the Refactoring Browser (if you do not have it) ==
- - Open the world menu (click on the squeak desktop)
- - Choose "Open..." and "SqueakMap package loader"
- - Type "AST"
- - Open the contextual menu of the "AST (->10)" element and select install.
- - Do the last two steps with "Refactoring Engine"
== Install Smacc ==
- - Open the world menu (click on the squeak desktop)
- - Choose "Open..." and "SqueakMap package loader"
- - Type "smacc" in the input box on top of the SqueakMap Package Loader
window
- - Open the contextual menu of "SmaccDev (->2)" and select install
- - Wait
== Recreate the parser with Smacc ==
- - You should now have a window titled "SmaCCParserGenerator: ?/?". (If
not, go to the world menu, choose open and "SmaCC generator")
- - You have two buttons labeled "...".
- - Click on the first button "..." and choose "SW2DocumentScanner".
Answer "yes" to the question.
- - Click on the second "..." and choose "SW2DocumentParser". Answer
"yes" too.
- - Click on "Compile LALR(1)"
== Delete all seaside processes ==
- - Open the "Tools" pan (right side of squeak, in orange)
- - Drag and drop the "Processes" button.
- - Select the elements whose names contains "seaside", "monitor" or
"semaphore" and kill each element using the "Terminate" option in the
contextual menu.
== Restart Seaside ==
- - Execute the following lines :
WAKom stop.
WAKom startOn: 8080.
WARegistry clearAllHandlers.
- - Close and reopen the SmallWiki 2 page on your browser.
- - Everything should work now
- --
Damien
,
/| __
/ | ,-~ /
Y :| // /
| jj /( .^
>-"~"-v"
/ Y
jo o |
( ~T~ j
>._-' _./
/ "~" |
Y _, |
/| ;-"~ _ l
/ l/ ,-"~ \
\//\/ .- \
Y / Y
l I !
]\ _\ /"\
(" ~----( ~ Y. )
~~~~~~~~~~~~~~~~~~~~~~~~~~
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFDJDURyl2oT75/6woRAp5bAKCkQFa6nbfW0QUUaG1EXwC8VWoI4ACgoEuC
QUQ9BycgVYr5Dm6hXmr08DQ=
=Xahk
-----END PGP SIGNATURE-----
> Hello,
>
> I'm testing the stability of SW1 with Squeak 3.8 and it seems
> that the latest release crashes after one day, but there is
> no Debug.log and I'm unable to track down the bugs. After the
> crash, there is a smallwikiSnapshot.changes and image, and
> when I manually do a snapshot, the server continue to work.
> I've tested the same image on two different machines. Has
> someone experienced the same problem ?
>
> Thanks !
> Samir
You wouldn't happen to also have seaside loaded in that image would you?
I found them incompatible due to conflicts and had similar issues,
smallwiki just crashing or locking up.
Hi all,
I'm experiencing for three months instability problems with Squeak
3.8/latest release, and since I'm unable and don't have time to track
down the problems, I suggest to downgrade the squeakmap release. It
should be wise to offer as the latest release a stable release and to
stick to that. But it seems that the automatic script don't care about
the stable/unstable squeakmap system, it seems that the script loads
the latest release regardless of the stability status. So I will
probably delete the latest release on squeakmap, and keep it for
record on squeaksource. I would like also to know if it is now
possible to use SW2 ?
Thanks
Samir
Hello,
I'm testing the stability of SW1 with Squeak 3.8 and it seems that the
latest release crashes after one day, but there is no Debug.log and
I'm unable to track down the bugs. After the crash, there is a
smallwikiSnapshot.changes and image, and when I manually do a
snapshot, the server continue to work. I've tested the same image on
two different machines. Has someone experienced the same problem ?
Thanks !
Samir
Hi,
We as impara have implemented an external storage for the SmallWiki 1. I
developed it in Squeak using a 3.8 image and the newest version of
SmallWiki 1 (SmallWiki-chbu-0.9.53-sam.20, Monticello Repository:
'http://kilana.unibe.ch:8888/smallwiki1').
I'm new to squeak and the code might not be very clean. I would be glad
about comments and suggestions for improvement.
I have loaded the package to the monticello repository
'http://kilana.unibe.ch:8888/SmallWikiEnh'. You need the YAXO XML-Parser
to run the extension (Monticello Repository
'http://kilana.unibe.ch:8888/XMLSupport').
You can also download a complete image from
http://impara.de/drop/squeak/XML-Storage.zip.
I already have ported contents from 2 SmallWikis (older versions) from a
3.7 image to a 3.8 image with the newest SmallWiki version.
For further information and how to use the Storage I made a readme entry
on the wiki for the SmallWikiEnh project on squeaksource.com .
Regards,
Thomas