diff --git a/myriad/__init__.py b/myriad/__init__.py index 2a1d18c..ead545d 100644 --- a/myriad/__init__.py +++ b/myriad/__init__.py @@ -39,7 +39,7 @@ def create_app(): app.register_blueprint(blog.bp) @app.context_processor - def utility_processor(): + def utility_processor(): def get_themes(): themes = os.listdir(app.config["THEMES_FOLDER"]) return themes diff --git a/myriad/home.py b/myriad/home.py index 187ea05..20099ac 100644 --- a/myriad/home.py +++ b/myriad/home.py @@ -5,7 +5,7 @@ from werkzeug.exceptions import abort from myriad.auth import login_required from myriad.db import get_db -from myriad.utilities import get_pages +from myriad.utilities import get_pages, error404 bp = Blueprint('home', __name__) @@ -57,7 +57,7 @@ def page(mid): member = db.execute("SELECT * FROM member WHERE custom_url=(?)",(mid,)).fetchone() mid = member[0] if not member: - return "Not Found
Go Home", 404 + return error404() blog = db.execute("SELECT * FROM blog WHERE member_id=(?) ORDER BY created DESC",(mid,)).fetchall() icon = db.execute("SELECT icon_location FROM icons WHERE id=(?)",(member[6],)).fetchone() @@ -72,6 +72,17 @@ def page(mid): if len(blog_public) > 0: blog_public_show = True + profile_public = member[9] + if not g.user and profile_public == 0: + return error404() + + page_public = member[21] + if page_public == 2: + return error404() + elif not g.user and page_public == 0: + return error404() + + return render_template('page.html', member=member, blog=blog, icon=icon, all_icons=all_icons, blinkies=blinkies, stamps=stamps, blog_public_show=blog_public_show, sections=sections, groups=groups) @bp.route("/groups") @@ -102,7 +113,7 @@ def group_page(gid): m = db.execute("SELECT * FROM member WHERE id=(?)",(member[2],)).fetchone() members.append(m) except TypeError: - return "Not Found
Go Home", 404 + return error404() return render_template('group_page.html', group=group, members=members) @bp.route("/page/") @@ -111,7 +122,7 @@ def custom_page(pid): try: page = db.execute("SELECT * FROM pages WHERE id=(?)",(pid,)).fetchone() except TypeError: - return "Not Found
Go Home", 404 + return error404() return render_template('custom_page.html', page=page) @bp.route("/page") diff --git a/myriad/manage.py b/myriad/manage.py index eb71a65..7e81485 100644 --- a/myriad/manage.py +++ b/myriad/manage.py @@ -82,6 +82,14 @@ def edit(mid): edit_location = "details" + if "enable_page" in request.form: + page_public = request.form["enable_page"] + + db.execute("UPDATE member SET public_page=(?) WHERE id=(?)",(page_public, mid)) + db.commit() + + edit_location="enable_page" + if "custom_url" in request.form: custom_url = request.form["custom_url"].strip() diff --git a/myriad/templates/base.html b/myriad/templates/base.html index 23f9c57..6a9c1f0 100644 --- a/myriad/templates/base.html +++ b/myriad/templates/base.html @@ -46,7 +46,14 @@ {% if pins %}
Pinned
{% for pin in pins %} - + {% if pin[21] == 2 %} + {% set view_page = False %} + {% elif not g.user and pin[21] == 0 %} + {% set view_page = False %} + {% else %} + {% set view_page = True %} + {% endif %} + {% if view_page %}{% endif %} {% endfor %} {% endif %} diff --git a/myriad/templates/full.html b/myriad/templates/full.html index 34bcfa0..b3f1516 100644 --- a/myriad/templates/full.html +++ b/myriad/templates/full.html @@ -22,8 +22,20 @@ {% for member in memberlist %} {% if not g.user and member[9]==0 %} - {% else %} + + {% if member[21] == 2 %} + {% set view_page = False %} + {% elif not g.user and member[21] == 0 %} + {% set view_page = False %} + {% else %} + {% set view_page = True %} + {% endif %} + + {% if not g.user and not view_page %} + {% set hide_links = True %} + {% endif %} +
{% if member[9]==0 %}{% endif %}{{ member[3]|safe }} {{ member[4]|safe }}
{% set icon = get_member_icon(member[0]) %} @@ -36,7 +48,7 @@ {{ member[5].replace('\n', '
')|safe }}

- + {% if not hide_links %}{% endif %}
{% endif %} diff --git a/myriad/templates/group_page.html b/myriad/templates/group_page.html index e79a91d..f4ef353 100644 --- a/myriad/templates/group_page.html +++ b/myriad/templates/group_page.html @@ -16,6 +16,18 @@ {% if not g.user and member[9]==0 %} {% else %} + {% if member[21] == 2 %} + {% set view_page = False %} + {% elif not g.user and member[21] == 0 %} + {% set view_page = False %} + {% else %} + {% set view_page = True %} + {% endif %} + + {% if not g.user and not view_page %} + {% set hide_links = True %} + {% endif %} +
{% if member[9]==0 %}{% endif %}{{ member[3]|safe }} {{ member[4]|safe }}
@@ -25,7 +37,7 @@ {{ member[5].replace('\n', '
')|safe }}

- + {% if not hide_links %}{% endif %}
diff --git a/myriad/templates/groups.html b/myriad/templates/groups.html index 875dc7a..7ee26a0 100644 --- a/myriad/templates/groups.html +++ b/myriad/templates/groups.html @@ -6,6 +6,7 @@ {% for group in groups %} {% if not g.user and group[3]==0 %} + {% else %}
{{group[1]}}
@@ -14,7 +15,16 @@ {% for member in group_members[group[0]] %} {% if not g.user and member[9]==0 %} {% else %} - ✰ {{ member[3]|safe }}
+ + {% if member[21] == 2 %} + {% set view_page = False %} + {% elif not g.user and member[21] == 0 %} + {% set view_page = False %} + {% else %} + {% set view_page = True %} + {% endif %} + + ✰ {% if view_page %}{% endif %}{{ member[3]|safe }}{% if view_page %}{% endif %}
{% endif %} {% endfor %} {% endif %} diff --git a/myriad/templates/index.html b/myriad/templates/index.html index 7050aad..ec0bf9d 100644 --- a/myriad/templates/index.html +++ b/myriad/templates/index.html @@ -6,7 +6,20 @@
{% if front_list|length > 0 %} - currently fronting: {% for member in front_list %}{% if member[22] %}{{ member[3]|safe }}{%else%}{{ member[3]|safe }}{%endif%} {% if front_list.index(member) != front_list|length -1 %}& {% endif %}{% endfor %} + currently fronting: + {% for member in front_list %} + {% if member[21] == 2 %} + {% set a_tags = False %} + {% elif not g.user and member[21] == 0 %} + {% set a_tags = False %} + {% else %} + {% set a_tags = True %} + {% endif %} + {% if member[22] %} + {% if a_tags %}{% endif %}{{ member[3]|safe }}{% if a_tags %}{% endif %} + {%else%}{% if a_tags %}{% endif %}{{ member[3]|safe }}{% if a_tags %}{% endif %} + {%endif%} + {% if front_list.index(member) != front_list|length -1 %}& {% endif %}{% endfor %} {% else %} There are currently no members listed as fronting {% endif %} @@ -20,6 +33,18 @@ {% if not g.user and member[9]==0 %} {% else %} + {% if member[21] == 2 %} + {% set view_page = False %} + {% elif not g.user and member[21] == 0 %} + {% set view_page = False %} + {% else %} + {% set view_page = True %} + {% endif %} + + {% if not g.user and not view_page %} + {% set hide_links = True %} + {% endif %} +
{% if member[9]==0 %}{% endif %}{{ member[3]|safe }} {{ member[4]|safe }}
@@ -33,7 +58,7 @@ {{ member[5].replace('\n', '
')|safe }}

- + {% if not hide_links %}{% endif %}
diff --git a/myriad/templates/manage/edit.html b/myriad/templates/manage/edit.html index 6163498..228bf55 100644 --- a/myriad/templates/manage/edit.html +++ b/myriad/templates/manage/edit.html @@ -25,6 +25,8 @@ {% endfor %}

+

Public: this member's profile will be visible in lists to anyone with access to the site

+

Private: this member's profile will be hidden, only visible to logged in users


@@ -33,6 +35,25 @@
Public Page Settings
+ +

Enable public page for this member? These settings are non-destructive and can be reverted at any time.

+

Public: member's customizable page can be viewed by anyone with access to the site

+

Private: member's page is viewable by users logged in to the site

+

Disabled: a custom page is not enabled for this member

+ + {% set public_page = member[21] %} +
+ +
+ +
+ +
+ +
+ +
+

Set a custom URL for your page. This has to be unique. Trying to set a custom URL that is already in use won't work.

diff --git a/myriad/templates/page.html b/myriad/templates/page.html index f073c34..74f6e93 100644 --- a/myriad/templates/page.html +++ b/myriad/templates/page.html @@ -7,10 +7,6 @@
- {% if not g.user and member[9]==0 %} - permission denied - {% else %} - {% if g.user %} Edit member ☆ {% if member[8]==0 %}Add to Front{% else %}Remove from Front{% endif %} ☆ {% if member[7]==0 %}Pin to Homepage{% else %}Unpin from Homepage{% endif %}
@@ -105,9 +101,6 @@ {% endif %} {% endif %} - - {% endif %} -
{% endblock %} \ No newline at end of file diff --git a/myriad/utilities.py b/myriad/utilities.py index 4580522..78c565c 100644 --- a/myriad/utilities.py +++ b/myriad/utilities.py @@ -1,6 +1,9 @@ import datetime, re from myriad.db import get_db +def error404(): + return "Not Found
Go Back", 404 + def server_time(): raw = datetime.datetime.now() real = raw.strftime("%d/%m/%Y, %H:%M:%S")