Skip to content

Instantly share code, notes, and snippets.

@adamcrown
Created October 25, 2016 03:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save adamcrown/e10d4b8a16615bd4f459cc8e57127b50 to your computer and use it in GitHub Desktop.
Save adamcrown/e10d4b8a16615bd4f459cc8e57127b50 to your computer and use it in GitHub Desktop.
couchrest_model User model
class User < CouchRest::Model::Base
self.database = server.database('_users')
def self.model_type_value() 'user' end
property :name
property :password
property :roles
property :_id
before_save :generate_id, :assign_admin_role
design do
view :all,
map: "function(doc) {
if (doc['couchrest-type'] == 'user') {
emit(doc['_id'],1);
}
}"
end
private
def generate_id
self._id = "org.couchdb.user:#{name}"
end
def unique_user_name
user = User.get(generate_id)
return true if user.nil? || _id == user._id
[false, 'User name has already been taken! Please select a new User name']
end
def assign_admin_role
self.roles ||= []
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment