Skip to content

Commit

Permalink
Merge 2 from evan-script_fix-branch
Browse files Browse the repository at this point in the history
  • Loading branch information
Evan Simpson committed Feb 27, 2001
1 parent a559f8f commit f7b0f98
Show file tree
Hide file tree
Showing 7 changed files with 70 additions and 13 deletions.
7 changes: 4 additions & 3 deletions __init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,8 +83,8 @@
#
##############################################################################
__doc__='''Python Scripts Product Initialization
$Id: __init__.py,v 1.6 2001/01/10 21:33:06 brian Exp $'''
__version__='$Revision: 1.6 $'[11:-2]
$Id: __init__.py,v 1.7 2001/02/27 17:35:17 evan Exp $'''
__version__='$Revision: 1.7 $'[11:-2]

import PythonScript
try:
Expand All @@ -111,4 +111,5 @@ def initialize(context):
)

context.registerHelp()
context.registerHelpTitle('Zope Help')
context.registerHelpTitle('Script (Python)')

2 changes: 1 addition & 1 deletion help/Bindings.stx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Script (Python) - Bindings: View/Change Bindings
Bindings View: View/Change Script Bindings

Description

Expand Down
56 changes: 56 additions & 0 deletions help/ModuleAccess.stx
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
Allowing Import of Modules

Scripts are able to import a small number of Python modules for
which there are security declarations. These include 'string',
'math', and 'random'. The only way to make other Python modules
available for import is to add security declarations to them in the
filesystem.

MyScriptModules

The simplest way to allow import of a module is to create your own
simple custom Product. To make this Product:

1. Create a subdirectory of your Zope installation's "Products"
directory. The name of the directory doesn't really matter; Let's
call it 'MyScriptModules'.

2. Create a file in this subdirectory called '__init__.py'.

3. Add the following lines to your '__init__.py'::

from Products.PythonScripts.Utility import allow_module, allow_class
from AccessControl import ModuleSecurityInfo, ClassSecurityInfo
from Globals import InitializeClass

4. For each module to which you want to allow access, add
security declarations in '__init__.py'.

Security Declarations

You will need to write different security declarations depending
on how much of a module you want to expose. You should import the
module at the Python command line, and use 'dir(<module_name>)' to
examine its contents. Names starting with underscore ('_') may be
safely ignored. Be wary of dangerous modules, such as 'sys' and
'os', which may be exposed by the module.

You can handle a module, such as 'base64', that contains only safe
functions by writing 'allow_module("module_name")'.

To allow access to only some names, in a module with dangerous
contents, you can write::

ModuleSecurityInfo('module_name').declarePublic('name1',
'name2', ...)

If the module contains a class that you want to use, you will need
to add the following::

from <module_name> import <class>
allow_class(<class>)

Certain modules, such as 'sha', provide extension types instead of
classes. Security declarations typically cannot be added to
extension types, so the only way to use this sort of module is to
write a Python wrapper class, or use External Methods.
8 changes: 4 additions & 4 deletions help/PythonScript_edit.stx
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
Script (Python) - Edit: Edit A Script (Python)
Edit View: Edit A Script (Python)

Description

This view allows you to edit the logic which composes a script
in Python. Script (Python) instances execute in a restricted
in Python. Script instances execute in a restricted
context, bounded by your user's privilege level in Zope, and
certain global restrictions of all through-the-web code. For
information about what you "can" and "cannot" do in a Script
(Python) instance as opposed to non-through-the-web Python,
see the API Reference documentation for "PythonScript" in
instance as opposed to non-through-the-web Python,
see the API Reference documentation for "Script (Python)" in
this help system.

Controls
Expand Down
8 changes: 4 additions & 4 deletions help/PythonScript_test.stx
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
Script (Python) - Test: Test A Script (Python)
Test View: Test a Script (Python)

Description

This view allows you to test a Script (Python) instance.

Controls

If a Script (Python) has no parameters, when the "Test" tab is
visited, the return value of the script will be presented in
If a Script has no parameters, when the "Test" tab is
visited the return value of the script will be presented in
the manage_main frame.

However, if a Script (Python) instance has parameters, a form
However, if a Script instance has parameters, a form
will be presented with fields for "Parameter" and "Value",
changeable on a per-parameter basis. These accept string
values. The 'Run Script' button runs the script after the
Expand Down
Binary file added tests/tscripts/try_except.ps
Binary file not shown.
2 changes: 1 addition & 1 deletion version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
PythonScripts-1-0-0
PythonScripts-1-0-1

0 comments on commit f7b0f98

Please sign in to comment.