Esempio n. 1
0
def log_action(kind,
               user_or_orgname,
               metadata=None,
               repo=None,
               repo_name=None):
    if not metadata:
        metadata = {}

    oauth_token = get_validated_oauth_token()
    if oauth_token:
        metadata["oauth_token_id"] = oauth_token.id
        metadata[
            "oauth_token_application_id"] = oauth_token.application.client_id
        metadata["oauth_token_application"] = oauth_token.application.name

    performer = get_authenticated_user()

    if repo_name is not None:
        repo = data_model.repository.get_repository(user_or_orgname, repo_name)

    logs_model.log_action(
        kind,
        user_or_orgname,
        repository=repo,
        performer=performer,
        ip=get_request_ip(),
        metadata=metadata,
    )
Esempio n. 2
0
        def wrapper(*args, **kwargs):
            # Verify the CSRF token.
            if get_validated_oauth_token() is None:
                if all_methods or (request.method != "GET" and request.method != "HEAD"):
                    verify_csrf(session_token_name, request_token_name, check_header)

            # Invoke the handler.
            resp = func(*args, **kwargs)
            return resp
Esempio n. 3
0
    def wrapped(*args, **kwargs):
        user = get_authenticated_user()
        if not user or user.robot:
            raise Unauthorized()

        if get_validated_oauth_token():
            return func(*args, **kwargs)

        last_login = session.get("login_time", datetime.datetime.min)
        valid_span = datetime.datetime.now() - FRESH_LOGIN_TIMEOUT
        logger.debug("Checking fresh login for user %s: Last login at %s",
                     user.username, last_login)

        if (last_login >= valid_span or not authentication.supports_fresh_login
                or not authentication.has_password_set(user.username)):
            return func(*args, **kwargs)

        raise FreshLoginRequired()
Esempio n. 4
0
    def wrapped(*args, **kwargs):
        user = get_authenticated_user()
        if not user:
            raise Unauthorized()

        if get_validated_oauth_token():
            return func(*args, **kwargs)

        logger.debug("Checking fresh login for user %s", user.username)

        last_login = session.get("login_time", datetime.datetime.min)
        valid_span = datetime.datetime.now() - datetime.timedelta(minutes=10)

        if (not user.password_hash or last_login >= valid_span
                or not authentication.supports_fresh_login):
            return func(*args, **kwargs)

        raise FreshLoginRequired()
Esempio n. 5
0
def build_notification_data(notification, event_data, performer_data=None):
    if not performer_data:
        performer_data = {}

        oauth_token = get_validated_oauth_token()
        if oauth_token:
            performer_data["oauth_token_id"] = oauth_token.id
            performer_data["oauth_token_application_id"] = oauth_token.application.client_id
            performer_data["oauth_token_application"] = oauth_token.application.name

        performer_user = get_authenticated_user()
        if performer_user:
            performer_data["entity_id"] = performer_user.id
            performer_data["entity_name"] = performer_user.username

    return {
        "notification_uuid": notification.uuid,
        "event_data": event_data,
        "performer_data": performer_data,
    }
Esempio n. 6
0
def build_notification_data(notification, event_data, performer_data=None):
    if not performer_data:
        performer_data = {}

        oauth_token = get_validated_oauth_token()
        if oauth_token:
            performer_data['oauth_token_id'] = oauth_token.id
            performer_data[
                'oauth_token_application_id'] = oauth_token.application.client_id
            performer_data[
                'oauth_token_application'] = oauth_token.application.name

        performer_user = get_authenticated_user()
        if performer_user:
            performer_data['entity_id'] = performer_user.id
            performer_data['entity_name'] = performer_user.username

    return {
        'notification_uuid': notification.uuid,
        'event_data': event_data,
        'performer_data': performer_data,
    }