71 lines
1.8 KiB
Python
Executable File
71 lines
1.8 KiB
Python
Executable File
#!/usr/bin/python2.4
|
|
|
|
import os
|
|
import os.path
|
|
import sys
|
|
from controller.Database import Database
|
|
from controller.Users import Users
|
|
from model.Notebook import Notebook
|
|
from model.User import User
|
|
|
|
|
|
class Plan_setter( object ):
|
|
"""
|
|
Set the rate plan for a particular user.
|
|
"""
|
|
def __init__( self, database, settings, user_id, rate_plan ):
|
|
self.database = database
|
|
self.user_id = user_id
|
|
self.rate_plan = int( rate_plan )
|
|
|
|
rate_plans = settings[ u"global" ][ u"luminotes.rate_plans" ]
|
|
self.users = Users( database, None, None, None, None, rate_plans, [] )
|
|
|
|
self.set_plan()
|
|
self.database.commit()
|
|
|
|
def set_plan( self ):
|
|
user = self.database.load( User, self.user_id )
|
|
|
|
if not user:
|
|
print "user id %s unknown" % self.user_id
|
|
sys.exit( 1 )
|
|
|
|
user.rate_plan = self.rate_plan
|
|
self.database.save( user, commit = False )
|
|
|
|
# update a user's group membership as a result of a rate plan change
|
|
self.users.update_groups( user )
|
|
|
|
def main( args ):
|
|
import cherrypy
|
|
from config import Common
|
|
|
|
cherrypy.config.update( Common.settings )
|
|
desktop = False
|
|
|
|
if args and "-d" in args:
|
|
from config import Development
|
|
settings = Development.settings
|
|
args.remove( "-d" )
|
|
elif args and "-l" in args:
|
|
from config import Desktop
|
|
settings = Desktop.settings
|
|
desktop = True
|
|
args.remove( "-l" )
|
|
else:
|
|
from config import Production
|
|
settings = Production.settings
|
|
|
|
cherrypy.config.update( settings )
|
|
database = Database(
|
|
host = cherrypy.config.configMap[ u"global" ].get( u"luminotes.db_host" ),
|
|
ssl_mode = cherrypy.config.configMap[ u"global" ].get( u"luminotes.db_ssl_mode" ),
|
|
data_dir = ".",
|
|
)
|
|
ranker = Plan_setter( database, cherrypy.config.configMap, *args )
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main( sys.argv[ 1: ] )
|