def canDeclineInvite(self, profile, inviteID): invite = profile.getInvite(inviteID) if not invite: return error(_CCR.INVITE_DOES_NOT_EXIST) if not invite.isActive(): return error(_CCR.INVITE_IS_NOT_ACTIVE) return self._isAccountRequestValid(_CRT.DECLINE_INVITE)
def canCreateClub(self, profile): stateID = profile.getState().getStateID() if stateID == _CCB.HAS_CLUB: return error(_CCR.ACCOUNT_ALREADY_IN_TEAM) if stateID == _CCB.SENT_APP: return error(_CCR.APPLICATION_FOR_USER_EXCEEDED) return self._isAccountRequestValid(_CRT.CREATE_CLUB)
def canCreateUnit(self, profile, club=None): stateID = profile.getState().getStateID() if stateID != _CCB.HAS_CLUB: return error(_CCR.HAS_NO_CLUB) if not club.canParticipateBattles(): return error(_CCR.NOT_ENOUGH_MEMBERS) return self._isClubRequestValid(_CRT.JOIN_UNIT, club, 'canCreateUnit')
def canCreateUnit(self, profile, club = None): stateID = profile.getState().getStateID() if stateID != _CCB.HAS_CLUB: return error(_CCR.HAS_NO_CLUB) if not club.canParticipateBattles(): return error(_CCR.NOT_ENOUGH_MEMBERS) return self._isClubRequestValid(_CRT.JOIN_UNIT, club, 'canCreateUnit')
def canLeaveClub(self, profile, club=None): stateID = profile.getState().getStateID() if stateID != _CCB.HAS_CLUB: return error(_CCR.HAS_NO_CLUB) if club is not None: if not club.hasMember(getAccountDatabaseID()): return error(_CCR.NOT_A_CLUB_MEMBER) return self._isClubRequestValid(_CRT.LEAVE_CLUB, club, 'canLeaveClub')
def canLeaveClub(self, profile, club = None): stateID = profile.getState().getStateID() if stateID != _CCB.HAS_CLUB: return error(_CCR.HAS_NO_CLUB) if club is not None: if not club.hasMember(getAccountDatabaseID()): return error(_CCR.NOT_A_CLUB_MEMBER) return self._isClubRequestValid(_CRT.LEAVE_CLUB, club, 'canLeaveClub')
def canAcceptInvite(self, profile, inviteID): if profile.getState().getStateID() == _CCB.HAS_CLUB: return error(_CCR.ACCOUNT_ALREADY_IN_TEAM) invite = profile.getInvite(inviteID) if not invite: return error(_CCR.INVITE_DOES_NOT_EXIST) if not invite.isActive(): return error(_CCR.INVITE_IS_NOT_ACTIVE) return self._isAccountRequestValid(_CRT.ACCEPT_INVITE)
def _isClubRequestValid(self, requestTypeID, club, permName): if club is not None: perms = club.getPermissions() if not getattr(perms, permName)(): return error(_CCR.DEFAULT) isValid, reason = club.getRestrictions().isRequestValid(requestTypeID) if not isValid: return error(reason) else: LOG_WARNING('There is no club to check restrictions, skip', requestTypeID, club, permName) return self._isAccountRequestValid(requestTypeID)
def canSendInvite(self, profile, club = None, accountsToInvite = None): stateID = profile.getState().getStateID() if stateID != _CCB.HAS_CLUB: return error(_CCR.HAS_NO_CLUB) if accountsToInvite is not None: if len(accountsToInvite) > CLUB_LIMITS.MAX_INVITES_PER_CALL: return error(_CCR.TOO_MANY_INVITES_PER_CALL) if club is not None: available = MAX_CLUB_ACTIVE_INVITES - len(club.getInvites(onlyActive=True)) if available < len(accountsToInvite): return error(_CCR.TOO_MANY_ACTIVE_INVITES) return self._isClubRequestValid(_CRT.SEND_INVITE, club, 'canSendInvite')
def canChangeWebSettings(self, profile, club = None): url = GUI_SETTINGS.lookup('clubSettings') if not url: return error(_CCR.DEFAULT) if club is not None: for rID in {_CRT.CHANGE_CLUB_NAME, _CRT.CHANGE_CLUB_EMBLEM}: result = self._isClubRequestValid(rID, club, 'canChangeWebSettings') if result.success: return result return error(_CCR.NOT_ENOUGH_RATED_BATTLES) return success()
def canChangeWebSettings(self, profile, club = None): url = GUI_SETTINGS.lookup('clubSettings') if not url: return error(_CCR.DEFAULT) else: if club is not None: permissions = club.getPermissions() if not permissions.canChangeWebSettings(): return error(_CCR.DEFAULT) if club.getTotalDossier().getTotalStats().getBattlesCount() < CLUB_LIMITS.MIN_BATTLES_COUNT_TO_CHANGE_NAME: return error(_CCR.NOT_ENOUGH_RATED_BATTLES) return success()
def canChangeWebSettings(self, profile, club=None): url = GUI_SETTINGS.lookup('clubSettings') if not url: return error(_CCR.DEFAULT) if club is not None: for rID in {_CRT.CHANGE_CLUB_NAME, _CRT.CHANGE_CLUB_EMBLEM}: result = self._isClubRequestValid(rID, club, 'canChangeWebSettings') if result.success: return result return error(_CCR.NOT_ENOUGH_RATED_BATTLES) return success()
def _isClubRequestValid(self, requestTypeID, club, permName): if club is not None: perms = club.getPermissions() if not getattr(perms, permName)(): return error(_CCR.DEFAULT) isValid, reason = club.getRestrictions().isRequestValid( requestTypeID) if not isValid: return error(reason) else: LOG_WARNING('There is no club to check restrictions, skip', requestTypeID, club, permName) return self._isAccountRequestValid(requestTypeID)
def canSendApplication(self, profile, club = None): stateID = profile.getState().getStateID() if stateID == _CCB.HAS_CLUB: return error(_CCR.ACCOUNT_ALREADY_IN_TEAM) if stateID == _CCB.SENT_APP: return error(_CCR.APPLICATION_FOR_USER_EXCEEDED) if club: if club.getState().isClosed(): return error(_CCR.CLUB_IS_CLOSED) for app in profile.getApplications().itervalues(): if app.getClubDbID() == club.getClubDbID() and app.isDeclined() and app.getTimestamp() + THE_SAME_CLUB_SEND_APP_COOLDOWN > getCurrentTimestamp(): return error(_CCR.TEMPORARILY_RESTRICTED) return self._isClubRequestValid(_CRT.SEND_APPLICATION, club, 'canSendApplication')
def canSendInvite(self, profile, club=None, accountsToInvite=None): stateID = profile.getState().getStateID() if stateID != _CCB.HAS_CLUB: return error(_CCR.HAS_NO_CLUB) if accountsToInvite is not None: if len(accountsToInvite) > CLUB_LIMITS.MAX_INVITES_PER_CALL: return error(_CCR.TOO_MANY_INVITES_PER_CALL) if club is not None: available = MAX_CLUB_ACTIVE_INVITES - len( club.getInvites(onlyActive=True)) if available < len(accountsToInvite): return error(_CCR.TOO_MANY_ACTIVE_INVITES) return self._isClubRequestValid(_CRT.SEND_INVITE, club, 'canSendInvite')
def isRequestValid(self, requestTypeID): if requestTypeID in self.__restrictions: for restriction in self.__restrictions[requestTypeID]: if not restriction.isExpired(): return error(restriction.getReasonString()) return success()
def canRevokeApplication(self, profile, club=None): stateID = profile.getState().getStateID() if stateID != _CCB.SENT_APP or club is not None and profile.getState( ).getClubDbID() != club.getClubDbID(): return error(_CCR.NOT_IN_APPLICANTS) return self._isClubRequestValid(_CRT.REVOKE_APPLICATION, club, 'canRevokeApplication')
def canKickMember(self, profile, club=None, memberDbID=None): if club is not None: if memberDbID is not None: if not club.hasMember(memberDbID): return error(_CCR.NOT_A_CLUB_MEMBER) return self._isClubRequestValid(_CRT.KICK_MEMBER, club, 'canKickMember')
def canSendApplication(self, profile, club=None): stateID = profile.getState().getStateID() if stateID == _CCB.HAS_CLUB: return error(_CCR.ACCOUNT_ALREADY_IN_TEAM) if stateID == _CCB.SENT_APP: return error(_CCR.APPLICATION_FOR_USER_EXCEEDED) if club: if club.getState().isClosed(): return error(_CCR.CLUB_IS_CLOSED) for app in profile.getApplications().itervalues(): if app.getClubDbID() == club.getClubDbID() and app.isDeclined( ) and app.getTimestamp( ) + THE_SAME_CLUB_SEND_APP_COOLDOWN > getCurrentTimestamp(): return error(_CCR.TEMPORARILY_RESTRICTED) return self._isClubRequestValid(_CRT.SEND_APPLICATION, club, 'canSendApplication')
def canSeeContenders(self, profile, club = None): if club and not club.getLadderInfo().isInLadder(): return error(_CCR.CLUB_IS_NOT_IN_LADDER) return self._isClubRequestValid(_CRT.GET_CLUBS_CONTENDERS, club, 'canSeeContenders')
def canRevokeInvite(self, profile, club = None): stateID = profile.getState().getStateID() if stateID != _CCB.HAS_CLUB: return error(_CCR.HAS_NO_CLUB) return self._isClubRequestValid(_CRT.REVOKE_INVITE, club, 'canRevokeInvite')
def canSeeOtherPlayerInfo(self, profile, club=None, userDbID=None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canKickMember(self, profile, club=None, memberDbID=None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canDeclineInvite(self, profile, inviteID): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def isRequestValid(self, requestTypeID): if requestTypeID in self.__restrictions: return error(first(self.__restrictions[requestTypeID]).getReasonString()) return success()
def canKickMember(self, profile, club = None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canChangeWebSettings(self, profile, club = None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canSeeApplicants(self, profile, club=None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canJoinUnit(self, profile, club = None): stateID = profile.getState().getStateID() if stateID != _CCB.HAS_CLUB: return error(_CCR.HAS_NO_CLUB) return self._isClubRequestValid(_CRT.JOIN_UNIT, club, 'canJoinUnit')
def canJoinUnit(self, profile, club=None): stateID = profile.getState().getStateID() if stateID != _CCB.HAS_CLUB: return error(_CCR.HAS_NO_CLUB) return self._isClubRequestValid(_CRT.JOIN_UNIT, club, 'canJoinUnit')
def canDeclineApplication(self, profile, club=None): stateID = profile.getState().getStateID() if stateID != _CCB.HAS_CLUB: return error(_CCR.HAS_NO_CLUB) return self._isClubRequestValid(_CRT.DECLINE_APPLICATION, club, 'canDeclineApplication')
def canRevokeInvite(self, profile, club=None): stateID = profile.getState().getStateID() if stateID != _CCB.HAS_CLUB: return error(_CCR.HAS_NO_CLUB) return self._isClubRequestValid(_CRT.REVOKE_INVITE, club, 'canRevokeInvite')
def canCloseClub(self, profile, club=None): stateID = profile.getState().getStateID() if stateID != _CCB.HAS_CLUB: return error(_CCR.HAS_NO_CLUB) return self._isClubRequestValid(_CRT.CLOSE_CLUB, club, 'canCloseClub')
def canSeeContenders(self, profile, club=None): if club and not club.getLadderInfo().isInLadder(): return error(_CCR.CLUB_IS_NOT_IN_LADDER) return self._isClubRequestValid(_CRT.GET_CLUBS_CONTENDERS, club, 'canSeeContenders')
def canCreateUnit(self, profile, club=None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canDeclineApplication(self, profile, club=None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canChangeClubRequirements(self, profile, club = None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canRevokeInvite(self, profile, club=None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canCreateClub(self, profile): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canCloseClub(self, profile, club=None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canSendApplication(self, profile, club = None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canSeeContenders(self, profile, club = None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canGetClubSeasons(self, profile, club=None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canCloseClub(self, profile, club = None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canSeeContenders(self, profile, club=None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canRevokeInvite(self, profile, club = None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canRevokeApplication(self, profile, club = None): stateID = profile.getState().getStateID() if stateID != _CCB.SENT_APP or profile.getState().getClubDbID() != club.getClubDbID(): return error(_CCR.NOT_IN_APPLICANTS) return self._isClubRequestValid(_CRT.REVOKE_APPLICATION, club, 'canRevokeApplication')
def canAssignPrivate(self, profile, club=None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canCloseClub(self, profile, club = None): stateID = profile.getState().getStateID() if stateID != _CCB.HAS_CLUB: return error(_CCR.HAS_NO_CLUB) return self._isClubRequestValid(_CRT.CLOSE_CLUB, club, 'canCloseClub')
def canChangeWebSettings(self, profile, club=None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canDeclineApplication(self, profile, club = None): stateID = profile.getState().getStateID() if stateID != _CCB.HAS_CLUB: return error(_CCR.HAS_NO_CLUB) return self._isClubRequestValid(_CRT.DECLINE_APPLICATION, club, 'canDeclineApplication')
def canAssignPrivate(self, profile, club = None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canCreateUnit(self, profile, club = None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canTransferOwnership(self, profile, club=None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canTransferOwnership(self, profile, club = None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)
def canChangeClubRequirements(self, profile, club=None): return error(CLIENT_CLUB_RESTRICTIONS.DEFAULT)