from .tool.func import *
def view_set(name = 'Test'):
with get_db_connect() as conn:
curs = conn.cursor()
check_ok = ''
user_page = 0
ip = ip_check()
if flask.request.method == 'POST':
check_data = 'document_set (' + name + ')'
else:
check_data = None
user_data = re.search(r'^user:(.+)$', name)
if user_data:
if check_data and ip_or_user(ip) != 0:
return redirect(conn, '/login')
if user_data.group(1) != ip:
if admin_check(conn, 5) != 1:
if check_data:
return re_error(conn, '/error/3')
else:
check_ok = 'disabled'
else:
user_page = 1
else:
if admin_check(conn, 5) != 1:
if check_data:
return re_error(conn, '/error/3')
else:
check_ok = 'disabled'
if flask.request.method == 'POST':
acl_data = ['decu', 'document_edit_acl', 'document_edit_request_acl', 'document_move_acl', 'document_delete_acl', 'dis', 'view', 'why']
for i in acl_data:
form_data = flask.request.form.get(i, '')
curs.execute(db_change("delete from acl where title = ? and type = ?"), [name, i])
curs.execute(db_change("insert into acl (title, data, type) values (?, ?, ?)"), [name, form_data, i])
curs.execute(db_change("delete from data_set where doc_name = ? and doc_rev = ? and set_name = 'acl_date'"), [name, i])
time_limit = flask.request.form.get(i + '_date', '')
if re.search(r'^[0-9]{4}-[0-9]{2}-[0-9]{2}$', time_limit):
curs.execute(db_change("insert into data_set (doc_name, doc_rev, set_name, set_data) values (?, ?, 'acl_date', ?)"), [name, i, time_limit])
all_d = ''
for i in acl_data[:-1]:
if flask.request.form.get(i, '') == '':
all_d += 'normal'
if i != 'view':
all_d += ' | '
else:
all_d += flask.request.form.get(i, '')
if i != 'view':
all_d += ' | '
markup_data = flask.request.form.get('document_markup', '')
curs.execute(db_change("select set_data from data_set where doc_name = ? and set_name = 'document_markup'"), [name])
db_data = curs.fetchall()
curs.execute(db_change("delete from data_set where doc_name = ? and set_name = 'document_markup'"), [name])
curs.execute(db_change("insert into data_set (doc_name, doc_rev, set_name, set_data) values (?, '', 'document_markup', ?)"), [name, markup_data])
if not db_data or db_data[0][0] != markup_data:
curs.execute(db_change("select data from data where title = ?"), [name])
db_data_2 = curs.fetchall()
if db_data_2:
render_set(conn,
doc_name = name,
doc_data = db_data_2[0][0],
data_type = 'backlink'
)
markup_data = markup_data if markup_data != '' else 'normal'
if admin_check(conn) == 1:
document_top = flask.request.form.get('document_top', '')
curs.execute(db_change("delete from data_set where doc_name = ? and set_name = 'document_top'"), [name])
curs.execute(db_change("insert into data_set (doc_name, doc_rev, set_name, set_data) values (?, '', 'document_top', ?)"), [name, document_top])
document_editor_top = flask.request.form.get('document_editor_top', '')
curs.execute(db_change("delete from data_set where doc_name = ? and set_name = 'document_editor_top'"), [name])
curs.execute(db_change("insert into data_set (doc_name, doc_rev, set_name, set_data) values (?, '', 'document_editor_top', ?)"), [name, document_editor_top])
admin_check(conn, 5, check_data)
conn.commit()
return redirect(conn, '/acl/' + url_pas(name))
else:
data = '
' + get_lang(conn, 'acl') + '
'
acl_list = get_acl_list('user') if re.search(r'^user:', name) else get_acl_list()
if not re.search(r'^user:', name):
acl_get_list = [
[get_lang(conn, 'view_acl'), 'view', '3'],
[get_lang(conn, 'document_acl'), 'decu', '4'],
[get_lang(conn, 'document_edit_acl'), 'document_edit_acl', '5'],
[get_lang(conn, 'document_edit_request_acl'), 'document_edit_request_acl', '5'],
[get_lang(conn, 'document_move_acl'), 'document_move_acl', '5'],
[get_lang(conn, 'document_delete_acl'), 'document_delete_acl', '5'],
[get_lang(conn, 'discussion_acl'), 'dis', '3'],
]
else:
acl_get_list = [
[get_lang(conn, 'document_acl'), 'decu', '2']
]
for i in acl_get_list:
data += '' + \
'' + i[0] + '' + \
''
data += '
'
date_value = ''
curs.execute(db_change("select set_data from data_set where doc_name = ? and doc_rev = ? and set_name = 'acl_date'"), [name, i[1]])
db_data = curs.fetchall()
if db_data:
date_value = db_data[0][0]
data += ''
data += '
'
curs.execute(db_change("select data from acl where title = ? and type = ?"), [name, 'why'])
acl_data = curs.fetchall()
acl_why = html.escape(acl_data[0][0]) if acl_data else ''
data += '' + \
'' + get_lang(conn, 'why') + '
' + \
'' + \
'
' + \
''
data += '''
''' + get_lang(conn, 'explanation') + '''
- normal : ''' + get_lang(conn, 'unset') + '''
- admin : ''' + get_lang(conn, 'admin_acl') + '''
- user : ''' + get_lang(conn, 'member_acl') + '''
- 50_edit : ''' + get_lang(conn, '50_edit_acl') + '''
- all : ''' + get_lang(conn, 'all_acl') + '''
- email : ''' + get_lang(conn, 'email_acl') + '''
- owner : ''' + get_lang(conn, 'owner_acl') + '''
- ban : ''' + get_lang(conn, 'ban_acl') + '''
- before : ''' + get_lang(conn, 'before_acl') + '''
- 30_day : ''' + get_lang(conn, '30_day_acl') + '''
- ban_admin : ''' + get_lang(conn, 'ban_admin_acl') + '''
- not_all : ''' + get_lang(conn, 'not_all_acl') + '''
- 90_day : ''' + get_lang(conn, '90_day_acl') + '''
- up_to_level_3 : ''' + get_lang(conn, 'up_to_level_3') + '''
- up_to_level_10 : ''' + get_lang(conn, 'up_to_level_10') + '''
''' + get_lang(conn, 'markup') + '''
'''
curs.execute(db_change("select set_data from data_set where doc_name = ? and set_name = 'document_markup'"), [name])
db_data = curs.fetchall()
markup_load = db_data[0][0] if db_data and db_data[0][0] != '' else ''
markup_list = ['normal'] + get_init_set_list('markup')['list']
markup_html = ''
for for_a in markup_list:
if markup_load == for_a:
markup_html = '' + markup_html
else:
markup_html += ''
markup_html = ''
data += markup_html
save_button = ''
if admin_check(conn) != 1:
check_ok = 'disabled'
curs.execute(db_change("select set_data from data_set where doc_name = ? and set_name = 'document_top'"), [name])
db_data = curs.fetchall()
document_top = db_data[0][0] if db_data and db_data[0][0] != '' else ''
curs.execute(db_change("select set_data from data_set where doc_name = ? and set_name = 'document_editor_top'"), [name])
db_data = curs.fetchall()
document_editor_top = db_data[0][0] if db_data and db_data[0][0] != '' else ''
data += '''
''' + get_lang(conn, 'document_top') + ''' (HTML)
''' + get_lang(conn, 'document_editor_top') + ''' (HTML)
'''
data += '
'
return easy_minify(conn, flask.render_template(skin_check(conn),
imp = [name, wiki_set(conn), wiki_custom(conn), wiki_css(['(' + get_lang(conn, 'acl') + ')', 0])],
data = '''
''',
menu = [
['w/' + url_pas(name), get_lang(conn, 'return')],
['manager', get_lang(conn, 'admin')]
]
))