def check(self, check_again = False):
    
    if c.get_uid() != '0':
      print ALERT + 'You need to run the script as root'
      exit()

    size = c.screen_size()
    if size < 110:
      print
      print ALERT + "The size of the current terminal must be greater than this."
      print "    Please, increase the window size and run the program again."
      print
      exit()

    ### Programs
    if c.program_exists(REAVER):
      version = c.check_reaver_version()
      if version == '1.5.2':
	self.REAVER = True
      else:
	print ALERT + "You need other version of reaver."
	self.REAVER = False
    elif not check_again:
      print ALERT + 'reaver is not installed'
      self.REAVER = False
    if c.program_exists(PIXIEWPS):
      self.PIXIEWPS = True
    elif not check_again:
      print ALERT + 'pixiewps is not installed'
      self.PIXIEWPS = False
    if c.program_exists(AIRMON):
      self.AIRMON = True
    elif not check_again:
      print ALERT + 'airmon-ng is not installed'
      self.AIRMON = False
    if c.program_exists(GIT):
      self.GIT = True
    elif not check_again:
      self.GIT = False
    if self.REAVER and self.AIRMON and self.PIXIEWPS and check_again:
      print INFO + "All programs were installed!"
      raw_input("%sPress enter to continue" %INPUT)
      print
      print INFO + "Starting the attack..."
    elif check_again:
      print
      print ALERT + "Some programs were not installed."
      print "    manually check the needed dependencies"
      print "    and run again the program after you installed them."
      print
      exit()
    if not (self.REAVER and self.AIRMON and self.PIXIEWPS):
      print ALERT + "You need to install some programs."
      print INPUT + "The dependencies are:"
      print "\tbuild-essential"
      print "\tlibpcap-dev"
      print "\tsqlite3"
      print "\tlibsqlite3-dev"
      print "\taircrack-ng"
      print "\tlibssl-dev"
      choice = raw_input("%sDo you wish to install them now [Y/n]?" %INPUT)
      if choice in CHOICES_YES:
	c.get_binaries()
      else:
	exit()
	
    version = subprocess.Popen('airodump-ng --help | grep wps', shell = True, stdout = subprocess.PIPE, stderr = subprocess.PIPE)
    version1 = version.communicate()[0]
    if '--wps' not in version1:
      print
      print ALERT + "Incorrect version of Aircrack on your repositories."
      print "    Do you want to download source code and compile it?"
      print "    (The program will try to compile it but the process may take a while)"
      print
      choice = raw_input(INPUT+"[Y/n] ")
      if choice in CHOICES_YES:
        c.get_binaries(compileAircrack = True)
      else:
        self.exit_clean()
      
    ###All good...
    engine.start()
Returns True if the given HttpRequest has permission to view
dataset/ETHPy150Open jgilhutton/pyxiewps_WPShack-Python/pyxiewps-EN.py/Engine.check--crossover with--dataset/ETHPy150Open AppScale/appscale/AppServer/lib/django-1.3/django/contrib/admin/sites.py/AdminSite.has_permission