00001
00002
00003 """
00004 usage: %(progname)s [args]
00005 """
00006
00007 import nstart
00008
00009 import os, sys, string, time, getopt, re
00010 from pyclearsilver.log import *
00011
00012 import neo_cgi, neo_util, neo_cs
00013
00014 from pyclearsilver import CSPage
00015 from pyclearsilver import odb
00016
00017 import MBPage
00018 import db_webui
00019
00020 import roslib
00021 import roslib.scriptutil
00022
00023 import webutil
00024
00025 class MyPage(MBPage.MBPage):
00026 def setup(self, hdf):
00027 self.db = db_webui.initSchema()
00028
00029 def display(self, hdf):
00030 webutil.set_tabs(hdf, ["admin", "users"])
00031
00032 def Action_CreateUser(self, hdf):
00033
00034 username = hdf.getValue("Query.username", "").strip()
00035 password = hdf.getValue("Query.password", "").strip()
00036 role = hdf.getValue("Query.role", "").strip()
00037
00038
00039 if self.authdb.users.lookup(username=username):
00040 hdf.setValue("CGI.cur.error_message.username", "User %s already exists." % username)
00041 if len(username) < 3:
00042 hdf.setValue("CGI.cur.error_message.username", "Please specify a user name (3 or more characters).")
00043 if len(password) < 3:
00044 hdf.setValue("CGI.cur.error_message.password", "Please specify a password (3 or more characters).")
00045 if hdf.getObj("CGI.cur.error_message"):
00046 return
00047
00048
00049 try:
00050 row = self.authdb.users.newRow()
00051 row.username = hdf.getValue("Query.username", "")
00052 new_password = hdf.getValue("Query.password", "")
00053 row.setPassword(new_password)
00054 row.role = hdf.getValue("Query.role", "")
00055 row.save()
00056 except:
00057 hdf.setValue("CGI.cur.error_message.password", "There was an error when trying to save this user.")
00058
00059 self.redirectUri("users.py")
00060
00061 def run(context):
00062 return MyPage(context, pagename="newuser", nologin=False)
00063
00064 def main():
00065 context = CSPage.Context()
00066 run(context).start()
00067
00068 if __name__ == "__main__":
00069 main()