Added texts for allowed denied tags in configuration

Removed domain only restriction (now it's also possible to allow/deny name parts of users email)
Fix no. of displayed books in unread books section, with applied restrictions
This commit is contained in:
Ozzieisaacs 2020-01-11 11:42:30 +01:00
parent 42435ab34a
commit 8143c16c14
5 changed files with 12 additions and 12 deletions

View File

@ -435,15 +435,15 @@ def delete_restriction(type):
@admin_required @admin_required
def list_restriction(type): def list_restriction(type):
if type == 0: # Tags as template if type == 0: # Tags as template
restrict = [{'Element': x, 'type':'1', 'id': 'd'+str(i) } restrict = [{'Element': x, 'type':_('deny'), 'id': 'd'+str(i) }
for i,x in enumerate(config.list_restricted_tags()) if x != '' ] for i,x in enumerate(config.list_restricted_tags()) if x != '' ]
allow = [{'Element': x, 'type':'1', 'id': 'a'+str(i) } allow = [{'Element': x, 'type':_('allow'), 'id': 'a'+str(i) }
for i,x in enumerate(config.list_allowed_tags()) if x != ''] for i,x in enumerate(config.list_allowed_tags()) if x != '']
json_dumps = restrict + allow json_dumps = restrict + allow
elif type == 1: # CustomC as template elif type == 1: # CustomC as template
restrict = [{'Element': x, 'type':'1', 'id': 'd'+str(i) } restrict = [{'Element': x, 'type':_('deny'), 'id': 'd'+str(i) }
for i,x in enumerate(config.list_restricted_column_values()) if x != '' ] for i,x in enumerate(config.list_restricted_column_values()) if x != '' ]
allow = [{'Element': x, 'type':'1', 'id': 'a'+str(i) } allow = [{'Element': x, 'type':_('allow'), 'id': 'a'+str(i) }
for i,x in enumerate(config.list_allowed_column_values()) if x != ''] for i,x in enumerate(config.list_allowed_column_values()) if x != '']
json_dumps = restrict + allow json_dumps = restrict + allow
elif type == 2: # Tags per user elif type == 2: # Tags per user
@ -452,9 +452,9 @@ def list_restriction(type):
usr = ub.session.query(ub.User).filter(ub.User.id == usr_id).first() usr = ub.session.query(ub.User).filter(ub.User.id == usr_id).first()
else: else:
usr = current_user usr = current_user
restrict = [{'Element': x, 'type':'2', 'id': 'd'+str(i) } restrict = [{'Element': x, 'type':_('deny'), 'id': 'd'+str(i) }
for i,x in enumerate(usr.list_restricted_tags()) if x != '' ] for i,x in enumerate(usr.list_restricted_tags()) if x != '' ]
allow = [{'Element': x, 'type':'2', 'id': 'a'+str(i) } allow = [{'Element': x, 'type':_('allow'), 'id': 'a'+str(i) }
for i,x in enumerate(usr.list_allowed_tags()) if x != ''] for i,x in enumerate(usr.list_allowed_tags()) if x != '']
json_dumps = restrict + allow json_dumps = restrict + allow
elif type == 3: # CustomC per user elif type == 3: # CustomC per user
@ -463,9 +463,9 @@ def list_restriction(type):
usr = ub.session.query(ub.User).filter(ub.User.id==usr_id).first() usr = ub.session.query(ub.User).filter(ub.User.id==usr_id).first()
else: else:
usr = current_user usr = current_user
restrict = [{'Element': x, 'type':'2', 'id': 'd'+str(i) } restrict = [{'Element': x, 'type':_('deny'), 'id': 'd'+str(i) }
for i,x in enumerate(usr.list_restricted_column_values()) if x != '' ] for i,x in enumerate(usr.list_restricted_column_values()) if x != '' ]
allow = [{'Element': x, 'type':'2', 'id': 'a'+str(i) } allow = [{'Element': x, 'type':_('allow'), 'id': 'a'+str(i) }
for i,x in enumerate(usr.list_allowed_column_values()) if x != ''] for i,x in enumerate(usr.list_allowed_column_values()) if x != '']
json_dumps = restrict + allow json_dumps = restrict + allow
else: else:

View File

@ -43,7 +43,7 @@ parser.add_argument('-k', metavar='path',
help='path and name to SSL keyfile, e.g. /opt/test.key, works only in combination with certfile') help='path and name to SSL keyfile, e.g. /opt/test.key, works only in combination with certfile')
parser.add_argument('-v', '--version', action='version', help='Shows version number and exits Calibre-web', parser.add_argument('-v', '--version', action='version', help='Shows version number and exits Calibre-web',
version=version_info()) version=version_info())
parser.add_argument('-i', metavar='ip-adress', help='Server IP-Adress to listen') parser.add_argument('-i', metavar='ip-address', help='Server IP-Address to listen')
parser.add_argument('-s', metavar='user:pass', help='Sets specific username to new password') parser.add_argument('-s', metavar='user:pass', help='Sets specific username to new password')
args = parser.parse_args() args = parser.parse_args()

View File

@ -736,7 +736,7 @@ def speaking_language(languages=None):
# example SELECT * FROM @TABLE WHERE 'abcdefg' LIKE Name; # example SELECT * FROM @TABLE WHERE 'abcdefg' LIKE Name;
# from https://code.luasoftware.com/tutorials/flask/execute-raw-sql-in-flask-sqlalchemy/ # from https://code.luasoftware.com/tutorials/flask/execute-raw-sql-in-flask-sqlalchemy/
def check_valid_domain(domain_text): def check_valid_domain(domain_text):
domain_text = domain_text.split('@', 1)[-1].lower() # domain_text = domain_text.split('@', 1)[-1].lower()
sql = "SELECT * FROM registration WHERE (:domain LIKE domain and allow = 1);" sql = "SELECT * FROM registration WHERE (:domain LIKE domain and allow = 1);"
result = ub.session.query(ub.Registration).from_statement(text(sql)).params(domain=domain_text).all() result = ub.session.query(ub.Registration).from_statement(text(sql)).params(domain=domain_text).all()
if not len(result): if not len(result):

View File

@ -13,7 +13,7 @@
<thead> <thead>
<tr> <tr>
<th data-field="Element" id="Element" data-editable-type="text" data-editable="true" data-editable-title="{{_('Enter Tag')}}"></th> <th data-field="Element" id="Element" data-editable-type="text" data-editable="true" data-editable-title="{{_('Enter Tag')}}"></th>
<th data-field="type" id="type" data-visible="false"></th> <th data-field="type" id="type" data-visible="true"></th>
<th data-field="id" id="id" data-visible="false"></th> <th data-field="id" id="id" data-visible="false"></th>
<th data-align="right" data-formatter="RestrictionActions"></th> <th data-align="right" data-formatter="RestrictionActions"></th>
</tr> </tr>

View File

@ -1010,7 +1010,7 @@ def render_read_books(page, are_read, as_xml=False, order=None, *args, **kwargs)
name = _(u'Read Books') + ' (' + str(len(readBookIds)) + ')' name = _(u'Read Books') + ' (' + str(len(readBookIds)) + ')'
pagename = "read" pagename = "read"
else: else:
total_books = db.session.query(func.count(db.Books.id)).scalar() total_books = db.session.query(func.count(db.Books.id)).filter(common_filters()).scalar()
name = _(u'Unread Books') + ' (' + str(total_books - len(readBookIds)) + ')' name = _(u'Unread Books') + ' (' + str(total_books - len(readBookIds)) + ')'
pagename = "unread" pagename = "unread"
return render_title_template('index.html', random=random, entries=entries, pagination=pagination, return render_title_template('index.html', random=random, entries=entries, pagination=pagination,