예제 #1
0
def LoginToGroup(username, password, group_key):
    if not reg_username.match(username):
        return None
    connect = MySQLdb.connect(db=config.DB_NAME, host=config.DB_HOST, port=config.DB_PORT, user=config.DB_USER, passwd=config.DB_PASSWD)
    group = GroupService.getGroupByKey(group_key, connect)
    user = GetUserFromDB(connect, username, group['id'])
    if user == None:
        connect.close()
        return None
    if md5.new(password).hexdigest() == user['passwd']:
        role = GroupService.checkJoinByKey(user, group_key, connect)
        if not role == None:
            user['passwd'] = '*****'
            if group['state'] == 0 and (datetime.date.today() - group['registration_date']) > datetime.timedelta(days=30):
                cur = connect.cursor()
                cur.execute('UPDATE GroupInfo SET state=%s WHERE id=%s;', (1, group['id']))
                connect.commit()
                cur.close()
                group['state'] = 1
            user['registration_date'] = str(user['registration_date'])
            group['registration_date'] = str(group['registration_date'])
            session['user'] = user
            session['group'] = group
            user['group'] = group
            user['role'] = role
            connect.close()
            return user
        connect.close()
        return None
    else:
        connect.close()
        return None
    return None
예제 #2
0
def RegisterGroupLicense(username, password, email, group_key, group_name):
    if len(group_key) >= 16:
        return False
    if len(group_name.encode('utf_8')) >= 255:
        return False
    connect = MySQLdb.connect(db=config.DB_NAME, host=config.DB_HOST, port=config.DB_PORT, user=config.DB_USER, passwd=config.DB_PASSWD)
    reg_result = Register(connect, username, password, email, 'group')
    if reg_result['result']:
        cur = connect.cursor()
        d = datetime.datetime.today()
        key = md5.new(d.strftime('%s')).hexdigest()
        cur.execute('UPDATE UserInfo SET email_key=%s WHERE id=%s;', (key, reg_result['user_id']))
        connect.commit()
        from_addr = '*****@*****.**'
        to_addr = email
        link = 'http://dsl.clooca.com/confirm/%s' % key
        link2 = 'http://dsl.clooca.com/login/%s' % group_key
        body = '''
        %s さん!cloocaグループライセンスに、ご登録ありがとうございます!
        登録を完了するには %s にアクセスしてください。
        また、グループにログインするには次のURLにアクセスしてください。 %s
        ''' % (username, link, link2)
        msg = Gmail.create_message(from_addr, to_addr, 'thank you!', body)
        Gmail.send_via_gmail(from_addr, to_addr, msg)
        cur.close()
        if GroupService.createGroup(connect, reg_result['user_id'], group_key, group_name):
            connect.close()
            return True
    connect.close()
    return False
예제 #3
0
def CreateUser(username, password, role = 0, group_id=None):
    if not reg_username.match(username):
        return False
    if len(password) < 5:
        return False
    connect = MySQLdb.connect(db=config.DB_NAME, host=config.DB_HOST, port=config.DB_PORT, user=config.DB_USER, passwd=config.DB_PASSWD)
    cur = connect.cursor()
    cur.execute('SELECT uname FROM UserInfo WHERE uname = %s;', (username,))
    rows = cur.fetchall()
    if len(rows) != 0:
        cur.close()
        connect.close()
        return False
    d = datetime.datetime.today()
    cur.execute('INSERT INTO UserInfo (uname,passwd,register_date,role) VALUES(%s,%s,%s,%s);',(username, md5.new(password).hexdigest(), d.strftime("%Y-%m-%d"), role, ))
    user_id = cur.lastrowid
    connect.commit()
    if not group_id == None:
        GroupService.joinGroup(user_id, group_id, connect)
    cur.close()
    connect.close()
    return True