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
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
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