Exemple #1
0
 def execute(self, user):
     session = Session()
     if len(user.account.aliases) >= 5:
         self.service.msg(user, '\x02{}\x02 계정에 등록할 수 있는 닉네임 제한을 초과했습니다 (5개).', user.account.name.name)
         return
     if Nick.find_by_name(user.nick):
         self.service.msg(user, '이미 등록되어 있는 닉네임입니다.')
         return
     nick = Nick()
     nick.name = user.nick
     nick.last_use = datetime.now()
     account = user.account
     account.aliases.append(nick)
     session.commit()
     self.service.msg(user, '\x02{}\x02 계정에 \x02{}\x02 닉네임을 추가했습니다.', user.account.name.name, nick.name)
Exemple #2
0
 def check(self, uid, name):
     nick = Nick.find_by_name(name)
     if nick and (nick.account or nick.account_alias):
         self.service.msg(
             uid,
             "이 닉네임은 이미 오징어 IRC 네트워크에 등록되어 있는 닉네임입니다. 계정의 주인이시라면 \x02/msg {} 로그인\x02 을, 주인이 아니시라면 지금 닉네임을 다른 것으로 바꿔 주세요.",
             self.service.name,
         )
Exemple #3
0
    def execute(self, user, email, password):
        session = Session()

        if Nick.find_by_name(user.nick):
            self.service.msg(user, '해당 닉네임 \x02{}\x02 은 이미 오징어 IRC 네트워크에 등록되어 있습니다.', user.nick)
            return

        nick = Nick()
        nick.name = user.nick
        nick.last_use = datetime.now()

        account = Account()
        account.email = email
        account.name = nick
        account.password = password
        account.last_login = datetime.now()

        session.add(account)
        session.commit()

        self.service.msg(user, '해당 닉네임 \x02{}\x02 의 계정 등록이 완료되었습니다. 앞으로 \x02/msg {} 로그인 {}\x02 명령을 통해 로그인할 수 있습니다. 지금 로그인 해보세요.', nick.name, self.service.name, password)
Exemple #4
0
 def execute(self, user, name):
     if name is None:
         name = user.nick
     session = Session()
     nick = Nick.find_by_name(name)
     if nick is None:
         self.service.msg(user, '\x02{}\x02 계정에 \x02{}\x02 닉네임이 등록되어 있지 않습니다.', user.account.name.name, name)
     elif user.account.name is nick:
         self.service.msg(user, '\x02{}\x02 닉네임이 해당 계정의 기본 닉네임으로 지정되어 있어 제거할 수 없습니다. 기본 닉네임을 수정해주세요.', name)
     else:
         account = user.account
         account.aliases.remove(nick)
         session.delete(nick)
         session.commit()
         self.service.msg(user, '\x02{}\x02 계정에서 \x02{}\x02 닉네임을 제거했습니다.', user.account.name.name, name)
Exemple #5
0
 def execute(self, user, new_name):
     session = Session()
     nick = Nick.find_by_name(new_name)
     if nick:
         if nick is user.account.name:
             self.service.msg(user, '\x02{}\x02 계정의 대표 닉네임이 이미 \x02{}\x02 입니다.', user.account.name.name, new_name)
             return
         elif nick in user.account.aliases:
             old_name = user.account.name.name
             account = user.account
             account.aliases.append(user.account.name)
             account.aliases.remove(nick)
             account.name = nick
             session.commit()
             user.metadata['accountname'] = user.account.name.name
             self.service.writeserverline('METADATA {} accountname :{}', user.uid, user.account.name.name)
             self.service.msg(user, '\x02{}\x02 계정의 대표 닉네임이 \x02{}\x02 로 변경되었습니다.', old_name, new_name)
             return
     self.service.msg(user, '\x02{}\x02 계정에 \x02{}\x02 닉네임이 존재하지 않습니다. \x02/msg {} 그룹\x02 명령을 이용해 해당 닉네임을 계정에 추가해보세요.', user.account.name.name, new_name, self.service.name)
Exemple #6
0
 def execute(self, user, name, password):
     if user.account is not None:
         self.service.msg(user, '이미 \x02{}\x02 계정으로 로그인되어 있습니다.', user.account.name.name)
         return
     if name is None:
         name = user.nick
     session = Session()
     nick = Nick.find_by_name(name)
     if nick:
         account = nick.account or nick.account_alias
         if account.password == password:
             nick.last_use = datetime.now()
             account.last_login = datetime.now()
             session.commit()
             self.service.msg(user, '환영합니다! \x02{}\x02 계정으로 로그인되었습니다.', account.name.name)
             self.service.writeserverline('METADATA {} accountname :{}', user.uid, account.name.name)
             if account.vhost is not None:
                 self.service.writesvsuserline('CHGHOST {} {}', user.uid, account.vhost)
             user.metadata['accountname'] = account.name.name
             return
     self.service.msg(user, '등록되지 않은 계정이거나 잘못된 비밀번호입니다. 계정명이나 비밀번호를 모두 제대로 입력했는지 다시 한번 확인해주세요.')