Thanks guys!
I appreciate it....
Here is my code, which works,
*but..
*as noted in my comments,
if * asdf* is a racial slur,
then
*youasdf*
should NOT be allowed as a username, even if *youasdf *is somehow taken
in another context, in a real name or word. User will have to pick another
username.
What do I need to do the the reg ex to flag
*youasdf*
as a bad word?
Note, for now, I'm just testing with this in* layout.html* and will attempt
the username thing after I get it working.
{{=IS_BAD()('youasdf')}}
# this import is required in web2py
import base64, re
#let's assume:
# username can't contain spaces, just a-z and periods
# 'frig' is a very bad word
# 'sadf' is a racial slur
# so even if a person's name as frig, or asdf in it
# we will not let them use that.
# asdf - is flagged as a bad username
# asdfyou - is flagged as a bad username
# youasdf - is NOT flagged a bad username, but IT SHOULD BE.
badlist = ['frig', 'asdf', 'etc']
BADWORDS = re.compile(r'|'.join(badlist))
class IS_BAD:
def __init__(self,error_message='bad word is contained in username'):
self.error_message = error_message
def __call__(self,value):
if BADWORDS.match(value):
return (value,self.error_message)
return (value, None)
--