2a0ddb59dac63a057cde1631cd58743be01bb789
[py-rsbac] / rsbac / __init__.py
1 # -*- coding:utf-8 -*-
2
3 # py-rsbac - RSBAC Python bindings
4 # Copyright (C) 2006  Frederic Jolliton <pyrsbac@tuxee.net>
5
6 # This program is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 2 of the License, or
9 # (at your option) any later version.
10
11 # This program is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, write to the Free Software
18 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19
20 __all__ = [
21     'Error' ,
22     'adf' , 'module' , 'transaction' , 'objects' , 'rc' , 'um' , 'data' ,
23     'jail' , 'acl' , 'daz' , 'roles' , 'auth' ,
24     'moduleVersion' , 'headerVersion' , 'kernelVersion' ]
25
26 import sys
27 if sys.version_info < ( 2 , 4 , 0 ) :
28     raise ImportError , 'RSBAC Python bindings requires at least Python 2.4'
29
30 moduleVersion = ( 0 , 0 , 1 , '' )
31
32 from rsbac.errors import Error
33 from rsbac._data import *
34 from rsbac._misc import *
35 from rsbac import adf, module, transaction, objects
36 from rsbac import rc, um, data, jail, acl, daz, roles, auth
37
38 __all__ += _data.__all__
39 __all__ += _misc.__all__
40
41 import headers
42 headerVersion = ( headers.RSBAC_VERSION_MAJOR ,
43                   headers.RSBAC_VERSION_MID ,
44                   headers.RSBAC_VERSION_MINOR )
45
46 # Note: overwrite the functions with their values
47 libraryVersion = libraryVersion()
48 kernelVersion = kernelVersion()
49
50 if ( not 0 <= kernelVersion[ 0 ] < 10
51      or not 0 <= kernelVersion[ 1 ] < 100
52      or not 0 <= kernelVersion[ 2 ] < 100 ) : # ok up to 10.100.100 version
53     print >> sys.stderr , 'Warning: RSBAC kernel version (%s) doesn\'t look right. Wrong librsbac.so?' \
54         % ( '.'.join( map( str , kernelVersion ) ) )
55 if libraryVersion != kernelVersion :
56     print >> sys.stderr , 'Warning: RSBAC version mismatch (library: %s, kernel: %s)' \
57         % ( '.'.join( map( str , libraryVersion ) ) ,
58             '.'.join( map( str , kernelVersion ) ) )
59 if libraryVersion != headerVersion :
60     print >> sys.stderr , 'Warning: RSBAC version mismatch (library: %s, header: %s)' \
61         % ( '.'.join( map( str , libraryVersion ) ) ,
62             '.'.join( map( str , headerVersion ) ) )
63 del sys
64
65 # Local Variables:
66 # indent-tabs-mode: nil
67 # python-indent: 4
68 # End: