Skip to content

Instantly share code, notes, and snippets.

@eseifert
Last active December 11, 2015 18:58
Show Gist options
  • Save eseifert/4645162 to your computer and use it in GitHub Desktop.
Save eseifert/4645162 to your computer and use it in GitHub Desktop.
Patch that removes hard coded names used for Cork's JSON backend. It also removes JSON specific calls by introducing save methods save_users(), save_roles(), and save_pending_registrations().
diff -Naur bottle-cork/cork/cork.py bottle-cork.new/cork/cork.py
--- bottle-cork/cork/cork.py 2013-01-26 22:56:36.767609240 +0100
+++ bottle-cork.new/cork/cork.py 2013-01-26 22:50:33.000000000 +0100
@@ -72,9 +72,9 @@
:param users_fname: users file name (without .json)
:type users_fname: str.
- :param roles_fname: roless file name (without .json)
+ :param roles_fname: roles file name (without .json)
:type roles_fname: str.
- :param pending_reg_fnames: pending registrations file name (without .json)
+ :param pending_reg_fname: pending registrations file name (without .json)
:type pending_reg_fname: str.
:param initialize: create empty JSON files (defaults to False)
:type initialize: bool.
@@ -147,9 +147,17 @@
raise AAAException("""Unable to save JSON file %s: %s
""" % (fname, e))
- def _save_users(self):
+ def save_users(self):
"""Save users in a JSON file"""
- self._savejson('users', self.users)
+ self._savejson(self._users_fname, self.users)
+
+ def save_roles(self):
+ """Save roles in a JSON file"""
+ self._savejson(self._roles_fname, self.roles)
+
+ def save_pending_registrations(self):
+ """Save pending registrations in a JSON file"""
+ self._savejson(self._pending_reg_fname, self.pending_registrations)
class Cork(object):
@@ -170,8 +178,8 @@
if smtp_server:
smtp_url = smtp_server
self.mailer = Mailer(email_sender, smtp_url)
- self._store = JsonBackend(directory, users_fname='users',
- roles_fname='roles', pending_reg_fname='register',
+ self._store = JsonBackend(directory, users_fname=users_fname,
+ roles_fname=roles_fname, pending_reg_fname=pending_reg_fname,
initialize=initialize)
self.password_reset_timeout = 3600 * 24
self.session_domain = session_domain
@@ -316,7 +324,7 @@
except ValueError:
raise AAAException("The level must be numeric.")
self._store.roles[role] = level
- self._store._savejson('roles', self._store.roles)
+ self._store.save_roles()
def delete_role(self, role):
"""Deleta a role.
@@ -330,7 +338,7 @@
if role not in self._store.roles:
raise AAAException("Nonexistent role.")
self._store.roles.pop(role)
- self._store._savejson(self._store._roles_fname, self._store.roles)
+ self._store.save_roles()
def list_roles(self):
"""List roles.
@@ -372,7 +380,7 @@
'desc': description,
'creation_date': tstamp
}
- self._store._save_users()
+ self._store.save_users()
def delete_user(self, username):
"""Delete a user account.
@@ -480,8 +488,7 @@
'desc': description,
'creation_date': creation_date,
}
- self._store._savejson(self._store._pending_reg_fname,
- self._store.pending_registrations)
+ self._store.save_pending_registrations()
def validate_registration(self, registration_code):
@@ -508,7 +515,7 @@
'desc': data['desc'],
'creation_date': data['creation_date']
}
- self._store._save_users()
+ self._store.save_users()
def send_password_reset_email(self, username=None, email_addr=None,
subject="Password reset confirmation",
@@ -715,7 +722,7 @@
username, pwd)
if email_addr is not None:
self._cork._store.users[username]['email_addr'] = email_addr
- self._cork._store._save_users()
+ self._cork._store.save_users()
def delete(self):
"""Delete user account
@@ -726,7 +733,7 @@
self._cork._store.users.pop(self.username)
except KeyError:
raise AAAException("Nonexistent user.")
- self._cork._store._save_users()
+ self._cork._store.save_users()
diff -Naur bottle-cork/examples/recreate_example_conf.py bottle-cork.new/examples/recreate_example_conf.py
--- bottle-cork/examples/recreate_example_conf.py 2013-01-26 22:56:36.769609214 +0100
+++ bottle-cork.new/examples/recreate_example_conf.py 2013-01-26 23:37:12.070103987 +0100
@@ -12,7 +12,7 @@
cork._store.roles['admin'] = 100
cork._store.roles['editor'] = 60
cork._store.roles['user'] = 50
- cork._store._savejson('roles', cork._store.roles)
+ cork._store.save_roles()
tstamp = str(datetime.utcnow())
username = password = 'admin'
@@ -31,7 +31,7 @@
'desc': username + ' test user',
'creation_date': tstamp
}
- cork._store._save_users()
+ cork._store.save_users()
if __name__ == '__main__':
populate_conf_directory()
diff -Naur bottle-cork/test/test_functional.py bottle-cork.new/test/test_functional.py
--- bottle-cork/test/test_functional.py 2013-01-26 22:56:36.771609188 +0100
+++ bottle-cork.new/test/test_functional.py 2013-01-26 23:33:45.791745631 +0100
@@ -51,7 +51,7 @@
cork._store.roles['admin'] = 100
cork._store.roles['editor'] = 60
cork._store.roles['user'] = 50
- cork._store._savejson('roles', cork._store.roles)
+ cork._store.save_roles()
tstamp = str(datetime.utcnow())
username = password = 'admin'
@@ -70,7 +70,7 @@
'desc': username + ' test user',
'creation_date': tstamp
}
- cork._store._save_users()
+ cork._store.save_users()
def remove_temp_dir(self):
p = os.path.join(self._tmproot, 'cork_functional_test_wd')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment