diff --git a/royalnet/royalgamesweb.py b/royalnet/royalgamesweb.py
index 4a606527..93fd819a 100644
--- a/royalnet/royalgamesweb.py
+++ b/royalnet/royalgamesweb.py
@@ -8,10 +8,11 @@ from royalnet.web.royalprints import *
class TestConfig:
DB_PATH = os.environ["DB_PATH"]
TG_AK = os.environ["TG_AK"]
+ SITE_NAME = "Royalnet"
app = create_app(TestConfig, [rp_home, rp_wikiview, rp_tglogin, rp_docs, rp_wikiedit, rp_mcstatus, rp_diarioview,
- rp_profile, rp_login])
+ rp_profile, rp_login, rp_newaccount])
if __name__ == "__main__":
diff --git a/royalnet/web/royalprints/__init__.py b/royalnet/web/royalprints/__init__.py
index f298a935..d2dfd110 100644
--- a/royalnet/web/royalprints/__init__.py
+++ b/royalnet/web/royalprints/__init__.py
@@ -9,6 +9,7 @@ from . import mcstatus
from . import diarioview
from . import profile
from . import login
+from . import newaccount
rp_home = home.rp
rp_wikiview = wikiview.rp
@@ -19,6 +20,7 @@ rp_mcstatus = mcstatus.rp
rp_diarioview = diarioview.rp
rp_profile = profile.rp
rp_login = login.rp
+rp_newaccount = newaccount.rp
__all__ = ["rp_home", "rp_wikiview", "rp_tglogin", "rp_docs", "rp_wikiedit", "rp_mcstatus", "rp_diarioview",
- "rp_profile", "rp_login"]
+ "rp_profile", "rp_login", "rp_newaccount"]
diff --git a/royalnet/web/royalprints/diarioview/templates/diarioview_page.html b/royalnet/web/royalprints/diarioview/templates/diarioview_page.html
index 414b4962..b8c09ead 100644
--- a/royalnet/web/royalprints/diarioview/templates/diarioview_page.html
+++ b/royalnet/web/royalprints/diarioview/templates/diarioview_page.html
@@ -1,7 +1,7 @@
{% extends "base.html" %}
{% block title %}
- Pagina {{ page }} - Diario RYG
+ Diario: Pagina {{ page }}
{% endblock %}
{% block content %}
diff --git a/royalnet/web/royalprints/login/__init__.py b/royalnet/web/royalprints/login/__init__.py
index 96c620da..0ee00573 100644
--- a/royalnet/web/royalprints/login/__init__.py
+++ b/royalnet/web/royalprints/login/__init__.py
@@ -22,15 +22,15 @@ def login_index():
@rp.route("/done", methods=["POST"])
def login_done():
alchemy, alchemy_session = f.current_app.config["ALCHEMY"], f.current_app.config["ALCHEMY_SESSION"]
- data = f.request.form
- if "username" not in data:
+ fd = f.request.form
+ if "username" not in fd:
return error(400, "Nessun username inserito.")
- royal_user = alchemy_session.query(alchemy.Royal).filter_by(username=data["username"]).one_or_none()
+ royal_user = alchemy_session.query(alchemy.Royal).filter_by(username=fd["username"]).one_or_none()
if royal_user is None:
return error(404, "L'username inserito non corrisponde a nessun account registrato.")
- if "password" not in data:
+ if "password" not in fd:
return error(400, "Nessuna password inserita.")
- if not bcrypt.checkpw(bytes(data["password"], encoding="utf8"), royal_user.password):
+ if not bcrypt.checkpw(bytes(fd["password"], encoding="utf8"), royal_user.password):
return error(400, "La password inserita non è valida.")
f.session["royal"] = {
"uid": royal_user.uid,
diff --git a/royalnet/web/royalprints/login/templates/login_index.html b/royalnet/web/royalprints/login/templates/login_index.html
index 31ac598a..974d666a 100644
--- a/royalnet/web/royalprints/login/templates/login_index.html
+++ b/royalnet/web/royalprints/login/templates/login_index.html
@@ -13,6 +13,9 @@
+
+ Non hai una password? Prova il Login con Telegram!
+
Facendo il login su questo sito, acconsenti a ricevere due biscottini che memorizzino l'account con cui hai fatto il login.
diff --git a/royalnet/web/royalprints/login/templates/login_success.html b/royalnet/web/royalprints/login/templates/login_success.html
index 2cf02b4a..d9005137 100644
--- a/royalnet/web/royalprints/login/templates/login_success.html
+++ b/royalnet/web/royalprints/login/templates/login_success.html
@@ -1,7 +1,7 @@
{% extends "base.html" %}
{% block title %}
- Successful Password Login
+ Password Login riuscito
{% endblock %}
{% block content %}
diff --git a/royalnet/web/royalprints/mcstatus/templates/mcstatus.html b/royalnet/web/royalprints/mcstatus/templates/mcstatus.html
index b90668a7..e6c3a560 100644
--- a/royalnet/web/royalprints/mcstatus/templates/mcstatus.html
+++ b/royalnet/web/royalprints/mcstatus/templates/mcstatus.html
@@ -1,7 +1,7 @@
{% extends "base.html" %}
{% block title %}
- {{ server_str }} - RYG MCstatus
+ Minecraft {{ server_str }}
{% endblock %}
{% block content %}
diff --git a/royalnet/web/royalprints/newaccount/__init__.py b/royalnet/web/royalprints/newaccount/__init__.py
new file mode 100644
index 00000000..20de4f34
--- /dev/null
+++ b/royalnet/web/royalprints/newaccount/__init__.py
@@ -0,0 +1,40 @@
+"""A :py:class:`royalnet.web.Royalprint` to create new Royals."""
+import flask as f
+import os
+import datetime
+import bcrypt
+from ...royalprint import Royalprint
+from ...shortcuts import error
+from ....database.tables import Royal, Alias
+
+
+tmpl_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'templates')
+rp = Royalprint("newaccount", __name__, url_prefix="/newaccount", required_tables={Royal, Alias},
+ template_folder=tmpl_dir)
+
+
+@rp.route("/", methods=["GET", "POST"])
+def login_index():
+ if f.request.method == "GET":
+ return f.render_template("newaccount_index.html")
+ elif f.request.method == "POST":
+ alchemy, alchemy_session = f.current_app.config["ALCHEMY"], f.current_app.config["ALCHEMY_SESSION"]
+ fd = f.request.form
+ if "username" not in fd:
+ return error(400, "Non è stato inserito nessun username.")
+ if "password" not in fd:
+ return error(400, "Non è stata inserita nessuna password.")
+ royal = alchemy_session.query(alchemy.Royal).filter_by(username=fd["username"]).one_or_none()
+ if royal is not None:
+ return error(403, "Esiste già un utente con quell'username.")
+ alias = alchemy_session.query(alchemy.Alias).filter_by(alias=fd["username"]).one_or_none()
+ if alias is not None:
+ return error(403, "Esiste già un utente con quell'alias.")
+ royal = alchemy.Royal(username=fd["username"],
+ password=bcrypt.hashpw(bytes(fd["password"], encoding="utf8"), bcrypt.gensalt()),
+ role="Guest")
+ alchemy_session.add(royal)
+ alias = alchemy.Alias(royal=royal, alias=royal.username.lower())
+ alchemy_session.add(alias)
+ alchemy_session.commit()
+ return f.redirect(f.url_for("login.login_index"))
diff --git a/royalnet/web/royalprints/newaccount/templates/newaccount_index.html b/royalnet/web/royalprints/newaccount/templates/newaccount_index.html
new file mode 100644
index 00000000..7d8e952b
--- /dev/null
+++ b/royalnet/web/royalprints/newaccount/templates/newaccount_index.html
@@ -0,0 +1,36 @@
+{% extends "base.html" %}
+
+{% block title %}
+ Nuovo account
+{% endblock %}
+
+{% block content %}
+
+
+
+
+ Nuovo account
+
+
+
+
+
+
+
+{% endblock %}
diff --git a/royalnet/web/royalprints/profile/templates/profile_index.html b/royalnet/web/royalprints/profile/templates/profile_index.html
index 7f352243..9ef02607 100644
--- a/royalnet/web/royalprints/profile/templates/profile_index.html
+++ b/royalnet/web/royalprints/profile/templates/profile_index.html
@@ -1,14 +1,14 @@
{% extends "base.html" %}
{% block title %}
- Elenco Utenti
+ Elenco profili
{% endblock %}
{% block content %}
- Elenco Utenti
+ Elenco profili
diff --git a/royalnet/web/royalprints/profile/templates/profile_page.html b/royalnet/web/royalprints/profile/templates/profile_page.html
index b9c549a8..b6d8ff65 100644
--- a/royalnet/web/royalprints/profile/templates/profile_page.html
+++ b/royalnet/web/royalprints/profile/templates/profile_page.html
@@ -1,7 +1,7 @@
{% extends "base.html" %}
{% block title %}
- {{ royal.username }} - Profilo RYG
+ Profilo: {{ royal.username }}
{% endblock %}
{% block content %}
diff --git a/royalnet/web/royalprints/tglogin/templates/tglogin_success.html b/royalnet/web/royalprints/tglogin/templates/tglogin_success.html
index 5eb5c050..1dba4f41 100644
--- a/royalnet/web/royalprints/tglogin/templates/tglogin_success.html
+++ b/royalnet/web/royalprints/tglogin/templates/tglogin_success.html
@@ -1,7 +1,7 @@
{% extends "base.html" %}
{% block title %}
- Successful Telegram Login
+ Telegram Login riuscito
{% endblock %}
{% block content %}
diff --git a/royalnet/web/royalprints/wikiedit/__init__.py b/royalnet/web/royalprints/wikiedit/__init__.py
index acaeea5c..3f1660e9 100644
--- a/royalnet/web/royalprints/wikiedit/__init__.py
+++ b/royalnet/web/royalprints/wikiedit/__init__.py
@@ -5,7 +5,7 @@ import os
import datetime
import difflib
from ...royalprint import Royalprint
-from ...shortcuts import error
+from ...shortcuts import error, from_urluuid
from ....database.tables import Royal, WikiPage, WikiRevision
@@ -41,17 +41,18 @@ def wikiedit_newpage():
alchemy_session.add(page)
alchemy_session.add(revision)
alchemy_session.commit()
- return f.redirect(f.url_for("wikiview.wikiview_by_id", page_id=page.page_id, title=page.title))
+ return f.redirect(f.url_for("wikiview.wikiview_by_id", page_id=page.page_short_id, title=page.title))
-@rp.route("/
", defaults={"title": ""}, methods=["GET", "POST"])
-@rp.route("//", methods=["GET", "POST"])
-def wikiedit_by_id(page_id: uuid.UUID, title: str):
+@rp.route("/", defaults={"title": ""}, methods=["GET", "POST"])
+@rp.route("//", methods=["GET", "POST"])
+def wikiedit_by_id(page_id: str, title: str):
+ page_uuid = from_urluuid(page_id)
if "royal" not in f.session:
return error(403, "Devi aver effettuato il login per modificare pagine wiki.")
alchemy, alchemy_session = f.current_app.config["ALCHEMY"], f.current_app.config["ALCHEMY_SESSION"]
- page = alchemy_session.query(alchemy.WikiPage).filter(alchemy.WikiPage.page_id == page_id).one_or_none()
+ page = alchemy_session.query(alchemy.WikiPage).filter(alchemy.WikiPage.page_id == page_uuid).one_or_none()
if page is None:
return error(404, "La pagina che stai cercando di modificare non esiste.")
@@ -75,4 +76,4 @@ def wikiedit_by_id(page_id: uuid.UUID, title: str):
page.title = fd["title"]
page.css = fd["css"] if fd["css"] != "None" else None
alchemy_session.commit()
- return f.redirect(f.url_for("wikiview.wikiview_by_id", page_id=page.page_id, title=page.title))
+ return f.redirect(f.url_for("wikiview.wikiview_by_id", page_id=page.page_short_id, title=page.title))
diff --git a/royalnet/web/royalprints/wikiedit/templates/wikiedit_page.html b/royalnet/web/royalprints/wikiedit/templates/wikiedit_page.html
index d017d767..90023d28 100644
--- a/royalnet/web/royalprints/wikiedit/templates/wikiedit_page.html
+++ b/royalnet/web/royalprints/wikiedit/templates/wikiedit_page.html
@@ -24,7 +24,7 @@
diff --git a/royalnet/web/royalprints/wikiview/templates/wikiview_index.html b/royalnet/web/royalprints/wikiview/templates/wikiview_index.html
index fe8a9969..39b99cea 100644
--- a/royalnet/web/royalprints/wikiview/templates/wikiview_index.html
+++ b/royalnet/web/royalprints/wikiview/templates/wikiview_index.html
@@ -1,14 +1,14 @@
{% extends "base.html" %}
{% block title %}
- Indice RYGwiki
+ Wiki
{% endblock %}
{% block content %}
- Pagine Wiki
+ Wiki
diff --git a/royalnet/web/royalprints/wikiview/templates/wikiview_page.html b/royalnet/web/royalprints/wikiview/templates/wikiview_page.html
index 4cb715d8..2aad57e0 100644
--- a/royalnet/web/royalprints/wikiview/templates/wikiview_page.html
+++ b/royalnet/web/royalprints/wikiview/templates/wikiview_page.html
@@ -1,7 +1,7 @@
{% extends "base.html" %}
{% block title %}
- {{ page.title }} - RYGwiki
+ Wiki: {{ page.title }}
{% endblock %}
{% block content %}
@@ -12,12 +12,12 @@
{% if session.royal %}
- Modifica
+ Modifica
{% else %}
Modifica
{% endif %}
|
- Permalink
+ Permalink
diff --git a/royalnet/web/templates/base.html b/royalnet/web/templates/base.html
index aebe2b63..60ddafbc 100644
--- a/royalnet/web/templates/base.html
+++ b/royalnet/web/templates/base.html
@@ -8,7 +8,7 @@
-
{% block title %}{% endblock %}
+
{% block title %}{% endblock %} - {{ config["SITE_NAME"] }}
{% if css %}
@@ -23,12 +23,12 @@
@@ -46,7 +46,7 @@
{% else %}
-
+
Login