Exemplo n.º 1
0
def handle_user_comments(user, page_id=1, **kwargs):
    return handle_page(endpoint='user.html',
                       items_lst=user.comments,
                       items_arg='comments',
                       page_id=page_id,
                       user=user,
                       current_mode='comments',
                       title=f"{user.name}'s Profile",
                       subtitle=f"{user.name}'s Comments",
                       api_exists=user_has_api_key(user.id),
                       report_exists=user_has_deletion_request(user.id),
                       admin_count=get_admin_count())
Exemplo n.º 2
0
def handle_user_api(user, page_id=1, **kwargs):
    if current_user.is_authenticated and current_user.email == User.query.get(user.id).email \
            or current_user.admin is True:
        try:
            requested_api = get_user_api(user.id)
        except AttributeError:
            return abort(400)
        if requested_api:
            return handle_page(endpoint='user.html', items_lst=requested_api, items_arg='all_posts', page_id=page_id,
                               pre_defined=True, report_exists=user_has_deletion_request(user.id), current_mode='api',
                               title=f"{user.name}'s Profile", subtitle=f"{user.name}'s API Key", user=user,
                               admin_count=get_admin_count(), api_operations=user_has_api_operations(user))
        else:
            return abort(404)
def generate_deletion():
    def create_link(decision):
        link_token = serializer.dumps(current_user.email, salt='deletion_request')
        return url_for('verification.handle_request', token=link_token, email=current_user.email, decision=decision,
                       _external=True)

    if user_has_deletion_request(current_user.id):
        requested_report = DeletionReport.query.filter_by(user_id=current_user.id).first()
        if not requested_report.approval_link:
            try:
                requested_report.approval_link = create_link(decision='approved')
                requested_report.rejection_link = create_link(decision='rejected')
                requested_report.date = generate_date()
            except AttributeError:
                return abort(500)
            else:
                db.session.commit()
                flash("Request sent, please wait 1-3 days for administrators to review your request.")
                return redirect(url_for('home.home_page', category='success'))
        else:
            flash("Your account is already in a pending deletion state.")
            return redirect(url_for('home.home_page', category='danger'))
    else:
        return abort(400)
def get_options(website=False):
    def get_last(given_options: dict):
        try:
            use_id = list(given_options.keys())[-1] + 1
        except IndexError:
            use_id = 1
        return use_id

    if website:
        if current_user.is_authenticated and current_user.admin is True:
            options_dict = {
                1: {
                    "name": "Website Configuration",
                    "desc": "Configure your website.",
                    "func": "website_settings.web_configuration"
                },
                2: {
                    "name": "Contact Me Configuration",
                    "desc": 'Configure the "Contact Me" page.',
                    "func": "website_settings.contact_configuration"
                },
                3: {
                    "name": "About Me Configuration",
                    "desc": 'Configure the "About Me" page.',
                    "func": "website_settings.about_configuration"
                },
                4: {
                    "name": "Authentication Configuration",
                    "desc": "Configure the website's authentication system.",
                    "func": "website_settings.authentication_configuration"
                },
                5: {
                    "name": "User Database Table",
                    "desc": "Visualize your user database effortlessly.",
                    "func": "website_settings.user_table"
                },
                6: {
                    "name": "API Configuration",
                    "desc": "Configure and manage your API system.",
                    "func": "website_settings.api_configuration"
                },
                7: {
                    "name": "Newsletter Configuration",
                    "desc":
                    "Configure and manage the built-in newsletter functionality.",
                    "func": "website_settings.newsletter_configuration"
                },
                8: {
                    "name": "Website Logs",
                    "desc": "Visualize all of your website logs effortlessly.",
                    "func": "website_settings.logs"
                },
                9: {
                    "name": "Newsletter Subscribers Database",
                    "desc":
                    "Visualize all of your newsletter subscribers effortlessly.",
                    "func": "website_settings.newsletter_subscribers_table"
                }
            }
        else:
            return abort(403)
    else:
        if current_user.is_authenticated:
            options_dict = {}
            if not user_has_api_key(current_user.id):
                options_dict[get_last(options_dict)] = {
                    "name": "Generate API Key",
                    "desc": "Generate an API Key to use our API services.",
                    "func": "api.generate_key"
                }
            if not user_has_deletion_request(current_user.id):
                options_dict[get_last(options_dict)] = {
                    "name": "Delete my Account",
                    "desc": "Request account deletion",
                    "func": "user_operations.request_deletion"
                }

        else:
            return abort(401)

    options = list(options_dict.values())

    return options
Exemplo n.º 5
0
def get_options(website=False):
    def get_last(given_options: dict):
        try:
            use_id = list(given_options.keys())[-1] + 1
        except IndexError:
            use_id = 1
        return use_id

    if website:
        if current_user.is_authenticated and current_user.admin is True:
            options_dict = {
                1: {
                    "name": "Website Configuration",
                    "desc": "Configure your website.",
                    "func": "website_settings.web_configuration"
                },
                2: {
                    "name": "Contact Me Configuration",
                    "desc": 'Configure the "Contact Me" page.',
                    "func": "website_settings.contact_configuration"
                },
                3: {
                    "name": "About Me Configuration",
                    "desc": 'Configure the "About Me" page.',
                    "func": "website_settings.about_configuration"
                },
                4: {
                    "name": "Authentication Configuration",
                    "desc": "Configure the website's authentication system.",
                    "func": "website_settings.authentication_configuration"
                },
                5: {
                    "name": "User Database Table",
                    "desc": "Visualize your user database effortlessly.",
                    "func": "website_settings.user_table"
                },
                6: {
                    "name": "API Configuration",
                    "desc": "Configure and manage your API system.",
                    "func": "website_settings.api_configuration"
                },
                7: {
                    "name": "Newsletter Configuration",
                    "desc":
                    "Configure and manage the built-in newsletter functionality.",
                    "func": "website_settings.newsletter_configuration"
                },
                8: {
                    "name": "Website Logs",
                    "desc": "Visualize all of your website logs effortlessly.",
                    "func": "website_settings.logs"
                },
                9: {
                    "name": "Newsletter Subscribers Database",
                    "desc":
                    "Visualize all of your newsletter subscribers effortlessly.",
                    "func": "website_settings.newsletter_subscribers_table"
                }
            }
        else:
            return abort(403)
    else:
        if current_user.is_authenticated:
            options_dict = {
                1: {
                    "name": "Change Account Password",
                    "desc": "Change your account password.",
                    "func": "login_system.change_password"
                }
            }
            if not user_has_api_key(current_user.id):
                options_dict[get_last(options_dict)] = {
                    "name": "Generate API Key",
                    "desc": "Generate an API Key to use our API services.",
                    "func": "api.generate_key"
                }
            if not current_user.twitter_name:
                options_dict[get_last(options_dict)] = {
                    "name": "Link Twitter Account",
                    "desc": "Link your Twitter account to log in via Twitter"
                    " (Less secure than other providers).",
                    "func": "oauth.link_twitter"
                }
            else:
                options_dict[get_last(options_dict)] = {
                    "name": "Unlink Twitter Account",
                    "desc": "Unlink your Twitter account.",
                    "func": "oauth.unlink_twitter"
                }
            if not current_user.github_id:
                options_dict[get_last(options_dict)] = {
                    "name": "Link GitHub Account",
                    "desc": "Link your GitHub account to log in via GitHub.",
                    "func": "oauth.link_github"
                }
            else:
                options_dict[get_last(options_dict)] = {
                    "name": "Unlink GitHub Account",
                    "desc": "Unlink your GitHub account.",
                    "func": "oauth.unlink_github"
                }
            if not current_user.google_id:
                options_dict[get_last(options_dict)] = {
                    "name": "Link Google Account",
                    "desc": "Link your Google account to log in via Google.",
                    "func": "oauth.link_google"
                }
            else:
                options_dict[get_last(options_dict)] = {
                    "name": "Unlink Google Account",
                    "desc": "Unlink your Google account.",
                    "func": "oauth.unlink_google"
                }
            if not user_has_deletion_request(current_user.id):
                options_dict[get_last(options_dict)] = {
                    "name": "Delete my Account",
                    "desc": "Request account deletion",
                    "func": "user_operations.request_deletion"
                }

        else:
            return abort(401)

    options = list(options_dict.values())

    return options