def post(self, *args, **kwargs):
     ''' Creates a new weapon system, and yes the form validation is shit '''
     form = Form(
         name="Please enter a name",
         ssh_user="******",
         ssh_key="Please enter an ssh key",
         ip_address="Please enter a ip address",
         ssh_port="Please enter an ssh port",
         service_port="Please enter a service port",
     )
     if form.validate(self.request.arguments):
         if WeaponSystem.by_name(self.get_argument('name')) is not None:
             self.render("admin/weaponsystem/create.html",
                 errors=['That name already exists']
             )
         elif WeaponSystem.by_ip_address(self.get_argument('ip_address')) is not None:
             self.render("admin/weaponsystem/create.html",
                 errors=['IP Address already in use']
             )
         else:
             try:
                 if not 1 <= int(self.get_argument('ssh_port', -1)) < 65535:
                     raise ValueError("SSh port not in range")
                 if not 1 <= int(self.get_argument('service_port', -1)) < 65535:
                     raise ValueError("Service port not in range")
                 weapon_system = self.create_weapon()
                 self.render("admin/weaponsystem/created.html", errors=None)
             except ValueError:
                 self.render("admin/weaponsystem/create.html",
                     errors=["Invalid port number; must be 1-65535"]
                 )
     else:
         self.render("admin/weaponsystem/create.html", errors=form.errors)
Example #2
0
 def post(self, *args, **kwargs):
     ''' Creates a new weapon system, and yes the form validation is shit '''
     form = Form(
         name="Please enter a name",
         ssh_user="******",
         ssh_key="Please enter an ssh key",
         ip_address="Please enter a ip address",
         ssh_port="Please enter an ssh port",
         service_port="Please enter a service port",
     )
     if form.validate(self.request.arguments):
         if WeaponSystem.by_name(self.get_argument('name')) is not None:
             self.render("admin/weaponsystem/create.html",
                         errors=['That name already exists'])
         elif WeaponSystem.by_ip_address(
                 self.get_argument('ip_address')) is not None:
             self.render("admin/weaponsystem/create.html",
                         errors=['IP Address already in use'])
         else:
             try:
                 if not 1 <= int(self.get_argument('ssh_port', -1)) < 65535:
                     raise ValueError("SSh port not in range")
                 if not 1 <= int(self.get_argument('service_port',
                                                   -1)) < 65535:
                     raise ValueError("Service port not in range")
                 weapon_system = self.create_weapon()
                 self.render("admin/weaponsystem/created.html", errors=None)
             except ValueError:
                 self.render(
                     "admin/weaponsystem/create.html",
                     errors=["Invalid port number; must be 1-65535"])
     else:
         self.render("admin/weaponsystem/create.html", errors=form.errors)
 def validate_form(self):
     ''' Shitty form validation '''
     # Name
     try:
         self.name = self.filter_string(self.get_argument("name"))
         if WeaponSystem.by_name(self.name) != None:
             raise ValueError("Name already exits")
     except:
         self.render(
             "admin/create_weaponsystem.html", message="Invalid Name")
         return False
     # IP Address
     try:
         self.ip_address = self.filter_string(
             self.get_argument("ipaddress"), extra_chars=".")
         if WeaponSystem.by_ip_address(self.ip_address) != None:
             raise ValueError("IP Address already in use")
     except:
         self.render("admin/create_weaponsystem.html",
                     message="Missing IP Address")
         return False
     # Service Port
     try:
         self.listen_port = int(self.get_argument("srvport"))
         if not 1 < self.listen_port < 65535:
             raise ValueError("Invalid port range, or not a number")
     except:
         self.render("admin/create_weaponsystem.html",
                     message="Invalid Listen Port")
         return False
     # SSH User
     try:
         self.ssh_user = self.filter_string(self.get_argument("sshuser"))
         if self.ssh_user.lower() == 'root':
             raise ValueError("SSH User cannot be 'root'")
     except:
         self.render("admin/create_weaponsystem.html",
                     message="Missing SSH User")
         return False
     # SSH Key
     try:
         self.ssh_key = self.filter_string(
             self.get_argument("sshkey"), extra_chars="+/=- \n")
     except:
         self.render("admin/create_weaponsystem.html",
                     message="Missing SSH Private Key")
         return False
     # SSH Port
     try:
         self.ssh_port = int(self.get_argument("sshport"))
         if not 1 < self.ssh_port < 65535:
             raise ValueError("Invalid port range, or not a number")
     except:
         self.render("admin/create_weaponsystem.html",
                     message="Missing SSH Port")
         return False
     return True