From 462fb1ae7ed71d76f5a02ee3ce9e6f615ba0bf21 Mon Sep 17 00:00:00 2001 From: Manuel Ebert Date: Mon, 28 Jan 2013 18:58:11 -0800 Subject: [PATCH] Convenience method for finding or creating a role `datastore. find_or_create_role("admin")` will now always return a role with the name admin; useful for initialisation, --- flask_security/datastore.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/flask_security/datastore.py b/flask_security/datastore.py index f5ccac4..293a9ac 100644 --- a/flask_security/datastore.py +++ b/flask_security/datastore.py @@ -146,6 +146,13 @@ class UserDatastore(object): role = self.role_model(**kwargs) return self.put(role) + def find_or_create_role(self, name, **kwargs): + """Returns a role matching the given name or creates it with any + additionally provided parameters + """ + kwrags["name"] = name + return self.find_role(name) or self.create_role(**kwargs) + def create_user(self, **kwargs): """Creates and returns a new user from the given parameters."""