from .tool.func import * def view_set_markup(conn, document_name = '', markup = '', addon = '', disable = ''): curs = conn.cursor() curs.execute(db_change('select data from other where name = "markup"')) db_data = curs.fetchall() default_markup = db_data[0][0] if db_data and db_data[0][0] != '' else 'namumark' markup_load = markup if markup == '': curs.execute(db_change("select set_data from data_set where doc_name = ? and set_name = 'document_markup'"), [document_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 = '' return markup_html async def view_set(name = 'Test', multiple = False): with get_db_connect() as conn: curs = conn.cursor() check_ok = '' ip = ip_check() time = get_time() if multiple and flask.request.method == 'POST': all_title = re.findall(r'([^\n]+)\n', flask.request.form.get('title_name', '').replace('\r', '') + '\n') for name in all_title: view_set(name, False) return redirect(conn, '/list/document/acl') else: if flask.request.method == 'POST': check_data = 'document_set (' + name + ')' else: check_data = '' need_admin = True user_data = re.search(r'^user:([^/]+)', name) if user_data: if ip_or_user(ip) != 0: return redirect(conn, '/login') if user_data.group(1) == ip: need_admin = False if need_admin: if await acl_check(tool = 'acl_auth') == 1: if flask.request.method == 'POST': return await re_error(conn, 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'] acl_result = [] acl_text = '' for i in acl_data: form_data = flask.request.form.get(i, '') acl_result += [form_data] acl_text += i + '\n' acl_text += form_data + '\n' 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]) acl_text += time_limit + '\n' acl_text += '\n\n' markup_data = flask.request.form.get('document_markup', '') acl_text += 'document_markup\n' acl_text += markup_data + '\n\n' 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: await 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 await acl_check('', 'owner_auth', '', '') != 1: document_top = flask.request.form.get('document_top', '') acl_text += 'document_top\n' acl_text += document_top + '\n\n' 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', '') acl_text += 'document_editor_top\n' acl_text += document_editor_top + '\n\n' 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]) if need_admin: await acl_check(tool = 'acl_auth', memo = check_data) history_plus(conn, name, acl_text, time, ip, acl_result[7], '0', mode = 'setting' ) return redirect(conn, '/acl/' + url_pas(name)) else: data = '

' + await get_lang('acl') + '

' acl_list = await get_acl_list() acl_get_list = [ [await get_lang('view_acl'), 'view', '3'], [await get_lang('document_acl'), 'decu', '4'], [await get_lang('document_edit_acl'), 'document_edit_acl', '5'], [await get_lang('document_edit_request_acl'), 'document_edit_request_acl', '5'], [await get_lang('document_move_acl'), 'document_move_acl', '5'], [await get_lang('document_delete_acl'), 'document_delete_acl', '5'], [await get_lang('discussion_acl'), 'dis', '3'], ] 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 += '' + \ '

' + await get_lang('why') + '

' + \ '' + \ '
' + \ '' data += '''

''' + await get_lang('explanation') + '''

''' + await get_lang('markup') + '''

''' data += view_set_markup(conn, document_name = name, disable = check_ok) save_button = '' if await acl_check('', 'owner_auth', '', '') == 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 += '''

''' + await get_lang('document_top') + ''' (HTML)

''' + await get_lang('document_editor_top') + ''' (HTML)

''' data += '
' text_area = '' if multiple == True: text_area = '
' menu = [ ['manager', await get_lang('admin')] ] title = await get_lang('mutiple_document_setting') sub = 0 else: menu = [ ['w/' + url_pas(name), await get_lang('return')], ['acl_multiple', await get_lang('mutiple_document_setting')], ['manager', await get_lang('admin')] ] title = name sub = '(' + await get_lang('document_setting') + ')' save_button += ' ' return await render_template( title, '''
''' + text_area + ''' ''' + await render_simple_set(data) + ''' ''' + save_button + '''
''', sub, menu )