Remove section-level permission; it was redundant. Closes #89725.

This commit is contained in:
david 2002-08-03 05:36:24 +00:00
parent 4ef9d4c53a
commit 183831d4d8
5 changed files with 34 additions and 49 deletions

View File

@ -1,7 +1,7 @@
insert(user, 1, t, t, f, f)
insert(admin, 2, t, f, t, f)
insert(sysadmin, 3, t, f, f, t)
insert(main, 4, f, f, f, f)
insert(news, 5, f, f, f, f)
insert(volunteer, 6, f, f, f, f)
insert(help, 7, f, f, f, f)
insert(user, 1)
insert(admin, 2)
insert(sysadmin, 3)
insert(main, 4)
insert(news, 5)
insert(volunteer, 6)
insert(help, 7)

View File

@ -3,9 +3,6 @@ CREATE TABLE section
section_code CHAR(20) NOT NULL,
sort_order INT4 NOT NULL,
only_dynamic BOOLEAN DEFAULT False,
only_registered BOOLEAN DEFAULT False,
only_admin BOOLEAN DEFAULT False,
only_sysadmin BOOLEAN DEFAULT False,
PRIMARY KEY (section_code)
);

View File

@ -1,3 +1,3 @@
m4_define(insert,m4_dnl
[INSERT INTO section(section_code, sort_order, only_dynamic, only_registered, only_admin, only_sysadmin)
VALUES ('$1', $2, '$3', '$4', '$5', '$6');])m4_dnl
[INSERT INTO section(section_code, sort_order)
VALUES ('$1', $2);])m4_dnl

View File

@ -788,17 +788,14 @@ class Tables:
for key in keys:
page = lampadasweb.pages[key]
if page.section_code==section.code:
if page.only_dynamic and lampadasweb.static:
if lampadasweb.static and page.only_dynamic:
continue
if page.only_registered and sessions.session==None:
continue
if page.only_admin and (sessions.session==None or sessions.session.user.admin==0):
continue
if page.only_sysadmin and (sessions.session==None or sessions.session.user.sysadmin==0):
continue
if page.only_registered or page.only_admin or page.only_sysadmin > 0:
if sessions.session==None:
continue
if page.only_admin > 0:
if sessions.session.user.admin==0 and sessions.session.user.sysadmin==0:
continue
if page.only_sysadmin > 0:
if sessions.session.user.sysadmin==0:
continue
box.write('<a href="|uri.base|%s|uri.lang_ext|">%s</a><br>\n'
% (page.code, page.menu_name[uri.lang]))
box.write('</td></tr></table>\n')
@ -806,28 +803,22 @@ class Tables:
def section_menus(self, uri):
log(3, "Creating all section menus")
box = ''
box = WOStringIO('')
keys = lampadasweb.sections.sort_by('sort_order')
first_menu = 1
menu_separator = ''
for key in keys:
section = lampadasweb.sections[key]
if lampadasweb.static and (section.only_dynamic or section.dynamic_count==0):
if lampadasweb.static and section.static_count==0:
continue
if section.only_registered or section.only_admin or section.only_sysadmin > 0:
if sessions.session==None or section.registered_count==0:
continue
if section.only_admin > 0:
if (sessions.session.user.admin==0 and sessions.session.user.sysadmin==0) or (section.admin_count==0):
continue
if section.only_sysadmin > 0:
if sessions.session.user.sysadmin==0 or section.sysadmin_count==0:
continue
if first_menu==1:
first_menu = 0
else:
box = box + '<p>'
box = box + self.section_menu(uri, section.code)
return box
if section.nonregistered_count==0 and (sessions.session==None):
continue
if section.nonadmin_count==0 and (sessions.session==None or sessions.session.user.admin==0):
continue
if section.nonsysadmin_count==0 and (sessions.session==None or sessions.session.user.sysadmin==0):
continue
box.write(menu_separator + self.section_menu(uri, section.code))
menu_separator = '<p>'
return box.get_value()
def sitemap(self, uri):
log(3, 'Creating sitemap')

View File

@ -69,7 +69,7 @@ class Sections(LampadasCollection):
def __init__(self):
self.data = {}
sql = "SELECT section_code, sort_order, only_dynamic, only_registered, only_admin, only_sysadmin FROM section"
sql = "SELECT section_code, sort_order FROM section"
cursor = db.select(sql)
while (1):
row = cursor.fetchone()
@ -86,14 +86,11 @@ class Section:
def load_row(self, row):
self.code = trim(row[0])
self.sort_order = safeint(row[1])
self.only_dynamic = tf2bool(row[2])
self.only_registered = tf2bool(row[3])
self.only_admin = tf2bool(row[4])
self.only_sysadmin = tf2bool(row[5])
self.dynamic_count = int(db.read_value('SELECT COUNT(*) FROM page WHERE only_dynamic'))
self.registered_count = int(db.read_value('SELECT COUNT(*) FROM page WHERE only_registered or only_admin or only_sysadmin'))
self.admin_count = int(db.read_value('SELECT COUNT(*) FROM page WHERE only_admin or only_sysadmin'))
self.sysadmin_count = int(db.read_value('SELECT COUNT(*) FROM page WHERE only_sysadmin'))
self.static_count = int(db.read_value('SELECT COUNT(*) FROM page WHERE section_code=' + wsq(self.code) + ' AND only_dynamic=' + wsq('f') + ''))
self.nonregistered_count = int(db.read_value('SELECT COUNT(*) FROM page WHERE section_code=' + wsq(self.code) + ' AND only_registered=' + wsq('f') + ' AND only_admin=' + wsq('f') + ' AND only_sysadmin=' + wsq('f') + ''))
self.nonadmin_count = int(db.read_value('SELECT COUNT(*) FROM page WHERE section_code=' + wsq(self.code) + ' AND only_admin=' + wsq('f') + ' AND only_sysadmin=' + wsq('f') + ''))
self.nonsysadmin_count = int(db.read_value('SELECT COUNT(*) FROM page WHERE section_code=' + wsq(self.code) + ' AND only_sysadmin=' + wsq('f') + ''))
print self.code + ': ' + str(self.nonregistered_count) + ', ' + str(self.nonsysadmin_count) + ', ' + str(self.nonadmin_count)
sql = "SELECT lang, section_name FROM section_i18n WHERE section_code=" + wsq(self.code)
cursor = db.select(sql)
while (1):