Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
pipelet
Pipelet
Commits
093b17ad
Commit
093b17ad
authored
Jul 25, 2010
by
Maude Le Jeune
Browse files
+ doc of new functions (pipe index + auth)
parent
9b407d47
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
61 additions
and
1 deletion
+61
-1
pipelet/auth.py
pipelet/auth.py
+44
-0
pipelet/web.py
pipelet/web.py
+17
-1
No files found.
pipelet/auth.py
View file @
093b17ad
...
...
@@ -5,12 +5,34 @@
import
cherrypy
import
sqlite3
def
read_access
(
func
):
""" Decorator to set read only access to a web page (cherrypy web function)
Parameters
----------
func: web function
"""
return
cherrypy
.
tools
.
digest_auth
(
realm
=
"pipeweb"
,
users
=
lambda
:
get_credentials
(
1
))(
func
)
def
write_access
(
func
):
""" Decorator to set read only accessto a web page (cherrypy web function)
Parameters
----------
func: web function
"""
return
cherrypy
.
tools
.
digest_auth
(
realm
=
"pipeweb"
,
users
=
lambda
:
get_credentials
(
2
))(
func
)
def
get_credentials
(
access_level
=
1
):
""" Get users/passwd from pipe data base.
Parameters
----------
access_level: int, 1 for read-only or 2 for read-write access
Returns
-------
dictionnary of user and passwd
"""
db_file
=
cherrypy
.
request
.
app
.
root
.
which_sqlfile
(
cherrypy
.
request
.
path_info
)
try
:
conn
=
sqlite3
.
connect
(
db_file
,
check_same_thread
=
True
)
...
...
@@ -28,6 +50,12 @@ def get_credentials(access_level=1):
return
dic
def
acl_setup
(
db_file
):
""" Set user/passwd table in pipe database.
Parameters
----------
db_file: string, pipe data base file
"""
conn
=
sqlite3
.
connect
(
db_file
,
check_same_thread
=
True
)
with
conn
:
if
not
conn
.
execute
(
'select tbl_name from sqlite_master where tbl_name == "users"'
).
fetchone
():
...
...
@@ -35,6 +63,15 @@ def acl_setup(db_file):
conn
.
close
()
def
add_user
(
db_file
,
user
,
passwd
,
access_level
=
1
):
""" Add user entry to data base.
Parameters
----------
db_file: string, pipe data base file
user: string, user name
passwd: string, user password
access_level: int, 1 for read-only or 2 for read-write access
"""
conn
=
sqlite3
.
connect
(
db_file
,
check_same_thread
=
True
)
acl_setup
(
db_file
)
with
conn
:
...
...
@@ -42,6 +79,13 @@ def add_user(db_file, user, passwd, access_level=1):
conn
.
close
()
def
del_user
(
db_file
,
user
):
""" Delete user entry from data base.
Parameters
----------
db_file: string, pipe data base file
user: string, user name
"""
conn
=
sqlite3
.
connect
(
db_file
,
check_same_thread
=
True
)
with
conn
:
conn
.
execute
(
'delete from users where user = ?'
%
user
)
...
...
pipelet/web.py
View file @
093b17ad
...
...
@@ -275,6 +275,11 @@ def start(config, config_file):
"""Start the web server in daemon mode.
Store the PID in the file specified in config.
Parameters
----------
config: dict where internal config is stored
config_file: string, user config file
"""
from
cherrypy.process.plugins
import
Daemonizer
,
PIDFile
cherrypy
.
config
.
update
(
config
)
...
...
@@ -290,9 +295,14 @@ def stop(config, config_file):
"""Stop the web server by sending the TERM signal to the daemon process.
Look for the PID in the file specified in config.
Parameters
----------
config: dict, where internal config is stored
config_file: string, user config file
"""
import
signal
cherrypy
.
config
.
update
(
config
_file
)
cherrypy
.
config
.
update
(
config
)
cherrypy
.
config
.
update
(
config_file
)
pidf
=
open
(
config
[
'global'
][
'server.pidfile'
])
pid
=
int
(
pidf
.
read
())
...
...
@@ -303,6 +313,12 @@ def update_config(pipename, pipepath, config_file):
""" Add a new Pipeline entry to the config file.
If the config file does not exist, create a new one.
Parameters
----------
pipename: string, pipe short name
pipepath: string, pipe instance root path
config_file: string, user config file
"""
import
ConfigParser
c
=
ConfigParser
.
ConfigParser
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment