1 | # -*- coding: utf-8 -*- |
---|
2 | |
---|
3 | db.define_table('active_directory', |
---|
4 | Field('admin_ad', required=True), |
---|
5 | Field('password', type='password', required=True), |
---|
6 | Field('server_ad', required=True), |
---|
7 | Field('base_db', required=True), |
---|
8 | ) |
---|
9 | |
---|
10 | db.define_table('pop3_servers', |
---|
11 | Field('url', required=True), |
---|
12 | Field('port', 'integer', required=True), |
---|
13 | Field('use_tls', type='boolean', required=True, default=True), |
---|
14 | Field('default_server', type='boolean', required=True, default=True), |
---|
15 | ) |
---|
16 | |
---|
17 | |
---|
18 | db.pop3_servers.id.readable = False |
---|
19 | |
---|
20 | db.define_table('openRLabs_setup', |
---|
21 | Field('URL_Apache_Guacamole_WebSocket', required=True), |
---|
22 | Field('URL_openGnsys_server', required=True), |
---|
23 | Field('URL_openRLabs_server', required=True), |
---|
24 | Field('auth_mode', requires = IS_IN_SET(['active_directory', 'pop3_servers'], |
---|
25 | zero=None), default='pop3_servers'), |
---|
26 | Field('maxtime_reserve', required=True, default='2'), |
---|
27 | Field('seconds_to_wait', required=True, default=200) |
---|
28 | ) |
---|
29 | |
---|
30 | if db(db.openRLabs_setup).isempty(): |
---|
31 | import load_init_setup |
---|
32 | |
---|
33 | load_init_setup.load_setup(db) |
---|
34 | |
---|
35 | #Ensure only one record |
---|
36 | def only_one_record(table): |
---|
37 | first = db(db[table].id > 1).select().first() |
---|
38 | |
---|
39 | if first: |
---|
40 | db(db[table].id != first['id']).delete() |
---|
41 | |
---|
42 | db[table].id.readable = False |
---|
43 | |
---|
44 | |
---|
45 | only_one_record('active_directory') |
---|
46 | only_one_record('openRLabs_setup') |
---|
47 | |
---|
48 | def insert_default_server(row, id): |
---|
49 | print(row) |
---|
50 | if row['default_server'] == True: |
---|
51 | db(db.pop3_servers.id != id).update(default_server = False) |
---|
52 | |
---|
53 | def update_default_server(row_info, row_values): |
---|
54 | id = row_info.select().first()['id'] |
---|
55 | |
---|
56 | if row_values['default_server'] == True: |
---|
57 | db(db.pop3_servers.id != id).update(default_server = False) |
---|
58 | |
---|
59 | db.pop3_servers._after_insert.append(lambda row, id: insert_default_server(row, id)) |
---|
60 | db.pop3_servers._after_update.append(lambda row_info, row_values: update_default_server(row_info, row_values)) |
---|
61 | |
---|
62 | |
---|
63 | |
---|