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", | ||||
|     ) | ||||
|  | ||||
| @ -4,6 +4,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) | ||||
|  | ||||
| @ -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