Fix.
This commit is contained in:
parent
7ca2bc5776
commit
f291c0f2e4
@ -20,7 +20,7 @@ class RegisterForm(Form):
|
||||
required=True,
|
||||
min_length=2,
|
||||
max_length=20,
|
||||
regex=r"^[a-zA-Z0-9_]+$",
|
||||
regex=r"^[a-zA-Z0-9_-]+$",
|
||||
place_holder="Username",
|
||||
type="text",
|
||||
)
|
||||
|
@ -5,6 +5,15 @@ from snek.system.service import BaseService
|
||||
class UserService(BaseService):
|
||||
mapper_name = "user"
|
||||
|
||||
async def search(self, query, **kwargs):
|
||||
query = query.strip().lower()
|
||||
if not query:
|
||||
raise []
|
||||
results = []
|
||||
async for result in self.find(username=dict(ilike='%' + query + '%'), **kwargs):
|
||||
results.append(result)
|
||||
return results
|
||||
|
||||
async def validate_login(self, username, password):
|
||||
model = await self.get(username=username)
|
||||
if not model:
|
||||
|
@ -1,65 +1,4 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Snek</title>
|
||||
<style>{{highlight_styles}}</style>
|
||||
<script src="/push.js"></script>
|
||||
<script src="/upload-button.js"></script>
|
||||
<script src="/html-frame.js"></script>
|
||||
<script src="/schedule.js"></script>
|
||||
<script src="/app.js"></script>
|
||||
<script src="/models.js"></script>
|
||||
<script src="/message-list.js"></script>
|
||||
<script src="/message-list-manager.js"></script>
|
||||
<script src="/chat-input.js"></script>
|
||||
<script src="/chat-window.js"></script>
|
||||
<link rel="stylesheet" href="/base.css">
|
||||
<link rel="manifest" href="/manifest.json" />
|
||||
<link rel="icon" type="image/png" href="/image/snek1.png" sizes="32x32">
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
<div class="logo">Snek</div>
|
||||
<nav>
|
||||
<a href="/web.html">🏠</a>
|
||||
<a style="display:none" id="install-button" href="#">📥</a>
|
||||
<a href="/web.html">👥</a>
|
||||
<a href="#">⚙️</a>
|
||||
<a href="/logout.html">🔒</a>
|
||||
</nav>
|
||||
</header>
|
||||
<main>
|
||||
<aside class="sidebar">
|
||||
<h2>Chat Rooms</h2>
|
||||
<ul>
|
||||
<li><a href="#">General</a></li>
|
||||
<li><a href="#">Development</a></li>
|
||||
<li><a href="#">Support</a></li>
|
||||
<li><a href="#">Random</a></li>
|
||||
|
||||
</ul>
|
||||
</aside>
|
||||
{% extends "app.html" %}
|
||||
{% block main %}
|
||||
<chat-window class="chat-area"></chat-window>
|
||||
</main>
|
||||
<script>
|
||||
let installPrompt = null
|
||||
window.addEventListener("beforeinstallprompt", async(event) => {
|
||||
event.preventDefault();
|
||||
installPrompt = event;
|
||||
//document.addEventListener("DOMContentLoaded", () => {
|
||||
|
||||
const button = document.getElementById("install-button")
|
||||
button.addEventListener("click", async ()=>{
|
||||
const result = await installPrompt.prompt()
|
||||
console.info(result.outcome)
|
||||
})
|
||||
button.style.display = 'inline-block'
|
||||
|
||||
});
|
||||
;
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
{% endblock %}
|
||||
|
@ -46,6 +46,11 @@ class RPCView(BaseView):
|
||||
await self.services.socket.subscribe(self.ws,subscription["channel_uid"])
|
||||
|
||||
return record
|
||||
|
||||
async def search_user(self, query):
|
||||
self._require_login()
|
||||
return [user['username'] for user in await self.services.user.search(query)]
|
||||
|
||||
async def get_user(self, user_uid):
|
||||
self._require_login()
|
||||
if not user_uid:
|
||||
|
Loading…
Reference in New Issue
Block a user