From 0052858fdcd7ecac2af27eb31eb4d4f4ab991296 Mon Sep 17 00:00:00 2001 From: Dan Helfman Date: Thu, 27 Sep 2007 02:33:24 +0000 Subject: [PATCH] Set email util. --- model/User.py | 6 +++++- tools/setemail.py | 53 +++++++++++++++++++++++++++++++++++++++++++++++ tools/setplan.py | 2 +- 3 files changed, 59 insertions(+), 2 deletions(-) create mode 100755 tools/setemail.py diff --git a/model/User.py b/model/User.py index 2ef3f13..e373a8f 100644 --- a/model/User.py +++ b/model/User.py @@ -91,6 +91,10 @@ class User( Persistent ): return d + def __set_email_address( self, email_address ): + self.update_revision() + self.__email_address = email_address + def __set_password( self, password ): self.update_revision() self.__salt = self.__create_salt() @@ -109,7 +113,7 @@ class User( Persistent ): self.__rate_plan = rate_plan username = property( lambda self: self.secondary_id ) - email_address = property( lambda self: self.__email_address ) + email_address = property( lambda self: self.__email_address, __set_email_address ) password = property( None, __set_password ) storage_bytes = property( lambda self: self.__storage_bytes, __set_storage_bytes ) rate_plan = property( lambda self: self.__rate_plan, __set_rate_plan ) diff --git a/tools/setemail.py b/tools/setemail.py new file mode 100755 index 0000000..a1fda3a --- /dev/null +++ b/tools/setemail.py @@ -0,0 +1,53 @@ +#!/usr/bin/python2.5 + +import os +import os.path +import sys +from config.Common import settings +from controller.Database import Database +from controller.Scheduler import Scheduler + + +class Setter( object ): + def __init__( self, scheduler, database, username, email_address ): + self.scheduler = scheduler + self.database = database + self.username = username + self.email_address = email_address + self.password = None + + threads = ( + self.set_email_address(), + ) + + for thread in threads: + self.scheduler.add( thread ) + self.scheduler.wait_for( thread ) + + def set_email_address( self ): + self.database.load( u"User %s" % self.username, self.scheduler.thread ) + user = ( yield Scheduler.SLEEP ) + if user is None: + raise Exception( "user %s is unknown" % self.username ) + + user.email_address = self.email_address + self.database.save( user ) + print "email set" + + +def main( program_name, args ): + print "IMPORTANT: Stop the Luminotes server before running this program." + + if len( args ) < 2: + print "usage: %s username emailaddress" % program_name + sys.exit( 1 ) + + scheduler = Scheduler() + database = Database( scheduler, "data.db" ) + initializer = Setter( scheduler, database, *args ) + scheduler.wait_until_idle() + + +if __name__ == "__main__": + import sys + main( sys.argv[ 0 ], sys.argv[ 1: ] ) diff --git a/tools/setplan.py b/tools/setplan.py index 8cd7f14..0209965 100755 --- a/tools/setplan.py +++ b/tools/setplan.py @@ -32,7 +32,7 @@ class Setter( object ): user.rate_plan = int( self.rate_plan ) self.database.save( user ) - print "password reset" + print "rate plan set" def main( program_name, args ):