diff --git a/ckanext/privatedatasets/helpers.py b/ckanext/privatedatasets/helpers.py index 3f55acd..9d188d8 100644 --- a/ckanext/privatedatasets/helpers.py +++ b/ckanext/privatedatasets/helpers.py @@ -5,24 +5,14 @@ import db def is_adquired(pkg_dict): - adquired = False - if db.package_allowed_users_table is None: db.init_db(model) - if db.AllowedUser.get(package_id=pkg_dict['id'], user_name=tk.c.user): - adquired = True - - return adquired + return len(db.AllowedUser.get(package_id=pkg_dict['id'], user_name=tk.c.user)) > 0 def is_owner(pkg_dict): - - owner = False - if tk.c.userobj.id == pkg_dict['creator_user_id']: - owner = True - - return owner + return tk.c.userobj.id == pkg_dict['creator_user_id'] def get_allowed_users_str(users): diff --git a/ckanext/privatedatasets/plugin.py b/ckanext/privatedatasets/plugin.py index 0bbca94..66c8c3b 100644 --- a/ckanext/privatedatasets/plugin.py +++ b/ckanext/privatedatasets/plugin.py @@ -151,27 +151,28 @@ class PrivateDatasets(p.SingletonPlugin, tk.DefaultDatasetForm): db.init_db(context['model']) # Get the users and the package ID - received_users = [allowed_user for allowed_user in pkg_dict['allowed_users']] - package_id = pkg_dict['id'] + if 'allowed_users' in pkg_dict: + received_users = [allowed_user for allowed_user in pkg_dict['allowed_users']] + package_id = pkg_dict['id'] - # Get current users - users = db.AllowedUser.get(package_id=package_id) + # Get current users + users = db.AllowedUser.get(package_id=package_id) - # Delete users and save the list of current users - current_users = [] - for user in users: - current_users.append(user.user_name) - if user.user_name not in received_users: - session.delete(user) + # Delete users and save the list of current users + current_users = [] + for user in users: + current_users.append(user.user_name) + if user.user_name not in received_users: + session.delete(user) - # Add non existing users - for user_name in received_users: - if user_name not in current_users: - out = db.AllowedUser() - out.package_id = package_id - out.user_name = user_name - out.save() - session.add(out) + # Add non existing users + for user_name in received_users: + if user_name not in current_users: + out = db.AllowedUser() + out.package_id = package_id + out.user_name = user_name + out.save() + session.add(out) return pkg_dict