Compare commits

..

3 commits

Author SHA1 Message Date
j
a576de8a82 use with_for_update for User class too 2019-01-20 15:28:38 +05:30
j
469cdf8fb7 remove debug 2019-01-20 15:22:48 +05:30
j
18309f9701 Public is not part of lists 2019-01-20 15:22:43 +05:30
3 changed files with 9 additions and 7 deletions

View file

@ -134,7 +134,6 @@ def get_icons_db_path():
icons_db_path = os.path.join(metadata, 'icons.db') icons_db_path = os.path.join(metadata, 'icons.db')
old_icons_db_path = os.path.join(settings.data_path, 'icons.db') old_icons_db_path = os.path.join(settings.data_path, 'icons.db')
if not os.path.exists(icons_db_path) and os.path.exists(old_icons_db_path): if not os.path.exists(icons_db_path) and os.path.exists(old_icons_db_path):
print(icons_db_path, icons_db_path)
shutil.move(old_icons_db_path, icons_db_path) shutil.move(old_icons_db_path, icons_db_path)
return icons_db_path return icons_db_path

View file

@ -42,8 +42,11 @@ class User(db.Model):
return self.id return self.id
@classmethod @classmethod
def get(cls, id): def get(cls, id, for_update=False):
user = cls.query.filter_by(id=id).first() qs = cls.query.filter_by(id=id)
if for_update:
qs = qs.with_for_update()
user = qs.first()
if user and not user.info: if user and not user.info:
user.info = {} user.info = {}
return user return user
@ -596,13 +599,13 @@ def export_list(data):
def update_user_peering(user_id, peered, username=None): def update_user_peering(user_id, peered, username=None):
with db.session(): with db.session():
u = User.get(user_id) u = User.get(user_id, for_update=True)
if u: if u:
u.update_peering(peered, username) u.update_peering(peered, username)
def remove_local_info(id): def remove_local_info(id):
with db.session(): with db.session():
u = User.get(id) u = User.get(id, for_update=True)
if u and 'local' in u.info: if u and 'local' in u.info:
del u.info['local'] del u.info['local']
u.save() u.save()
@ -610,7 +613,7 @@ def remove_local_info(id):
def add_local_info(data): def add_local_info(data):
with db.session(): with db.session():
u = User.get(data['id']) u = User.get(data['id'], for_update=True)
if u: if u:
if u.info['username'] != data['username']: if u.info['username'] != data['username']:
u.info['username'] = data['username'] u.info['username'] = data['username']

View file

@ -353,7 +353,7 @@ oml.ui.folders = function() {
oml.$ui.folder[index].options({title: Ox.encodeHTMLEntities(name)}); oml.$ui.folder[index].options({title: Ox.encodeHTMLEntities(name)});
oml.getLists(function(lists) { oml.getLists(function(lists) {
var items = lists.filter(function(list) { var items = lists.filter(function(list) {
return list.user == name && list.type != 'library'; return list.user == name && list.type != 'library' && list.name != 'Public';
}), }),
library = lists.filter(function(list) { library = lists.filter(function(list) {
return list.user == name && list.type == 'library'; return list.user == name && list.type == 'library';