def add(self, username, email, real_name, password, status='', role='user'):
        username, real_name = username.strip(), real_name.strip()
        if not re.match(r'^[A-Za-z0-9_]{4,16}$', username):
            return {'status' : 'error', 'msg' : 'user name: %s must be the ^[A-Za-z0-9_]{4,16}$ pattern' %(username)}

        if not re.match(r'^[A-Za-z0-9_ ]{4,16}$', real_name):
            return {'status' : 'error', 'msg' : 'real name: %s must be the [A-Za-z0-9_]{4,16} pattern' %(real_name)}

        if not re.match(r'^[A-Za-z0-9@#$%^&+=]{4,16}$', password):
            return {'status' : 'error', 'msg' : 'password: %s must be the ^[A-Za-z0-9@#$%^&+=]{4,16}$ pattern' %(password)}

        if status not in USER_STATUSES:
            status = 'actived'

        if role not in ROLES:
            role = 'user'

        if len(email) > 7 and re.match("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$", email):
            if Backend('user').find_by_email(email):
                return {'status' : 'error', 'msg' : 'email:%s is used' %(email)}

        if Backend('user').find_by_username(username):
            return {'status' : 'error', 'msg' : 'user name:%s is used' %(username)}

        user = User(username, email, real_name, password, status, role)
        Backend('user').save(user)
        return  {'status' : 'info', 'msg' : 'saved'}