from .tool.func import * def view_acl(name): 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('/login') if user_data.group(1) != ip: if admin_check(5) != 1: if check_data: return re_error('/error/3') else: check_ok = 'disabled' else: user_page = 1 else: if admin_check(5) != 1: if check_data: return re_error('/error/3') else: check_ok = 'disabled' if flask.request.method == 'POST': acl_data = [['decu', flask.request.form.get('decu', '')]] acl_data += [['document_edit_acl', flask.request.form.get('document_edit_acl', '')]] acl_data += [['document_move_acl', flask.request.form.get('document_move_acl', '')]] acl_data += [['document_delete_acl', flask.request.form.get('document_delete_acl', '')]] acl_data += [['dis', flask.request.form.get('dis', '')]] acl_data += [['view', flask.request.form.get('view', '')]] acl_data += [['why', flask.request.form.get('why', '')]] for i in acl_data: curs.execute(db_change("select title from acl where title = ? and type = ?"), [name, i[0]]) if curs.fetchall(): curs.execute(db_change("update acl set data = ? where title = ? and type = ?"), [i[1], name, i[0]]) else: curs.execute(db_change("insert into acl (title, data, type) values (?, ?, ?)"), [name, i[1], i[0]]) all_d = '' for i in ['decu', 'document_edit_acl', 'document_move_acl', 'document_delete_acl', 'dis', 'view']: 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() if db_data: curs.execute(db_change("update data_set set set_data = ? where doc_name = ? and set_name = 'document_markup'"), [ markup_data, name ]) else: 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( doc_name = name, doc_data = db_data_2[0][0], data_type = 'backlink' ) markup_data = markup_data if markup_data != '' else 'default' if user_page == 1: admin_check(5, check_data + ' (' + all_d + ')' + ' (' + markup_data + ')') conn.commit() return redirect('/acl/' + url_pas(name)) else: data = '