+
+ ##
+ # perform a spam check on a user
+ def spam_check
+ if status == "active" and spam_score > SPAM_THRESHOLD
+ update_column(:status, "suspended")
+ end
+ end
+
+ ##
+ # return an oauth access token for a specified application
+ def access_token(application_key)
+ return ClientApplication.find_by_key(application_key).access_token_for_user(self)
+ end
+
+private
+
+ def set_defaults
+ self.creation_time = Time.now.getutc unless self.attribute_present?(:creation_time)
+ self.description_format = "markdown" unless self.attribute_present?(:description_format)
+ end
+
+ def encrypt_password
+ if pass_crypt_confirmation
+ self.pass_salt = OSM::make_token(8)
+ self.pass_crypt = OSM::encrypt_password(pass_crypt, pass_salt)
+ self.pass_crypt_confirmation = nil
+ end
+ end