| 
									
										
										
										
											2023-03-23 17:12:23 +08:00
										 |  |  | <!DOCTYPE html> | 
					
						
							|  |  |  | <html lang="en"> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <head> | 
					
						
							|  |  |  |     <meta charset="UTF-8"> | 
					
						
							|  |  |  |     <meta name="viewport" | 
					
						
							|  |  |  |         content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=3.0, user-scalable=yes" /> | 
					
						
							|  |  |  |     <meta name="format-detection" content="telephone=no" /> | 
					
						
							|  |  |  |     <link href="../static/css/bootstrap.css" rel="stylesheet"> | 
					
						
							|  |  |  |     <script src="../static/js/jquery.js"></script> | 
					
						
							|  |  |  | </head> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <body class="container" style="width: 800px; margin: auto; margin-top:24px;"> | 
					
						
							|  |  |  |     <nav class="navbar navbar-expand-lg bg-light"> | 
					
						
							|  |  |  |         <div class="container-fluid"> | 
					
						
							|  |  |  |             <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" | 
					
						
							|  |  |  |                 aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> | 
					
						
							|  |  |  |                 <span class="navbar-toggler-icon"></span> | 
					
						
							|  |  |  |             </button> | 
					
						
							|  |  |  |             <div class="collapse navbar-collapse" id="navbarNav"> | 
					
						
							|  |  |  |                 <ul class="navbar-nav"> | 
					
						
							|  |  |  |                     <li class="nav-item"> | 
					
						
							| 
									
										
										
										
											2023-03-26 19:06:04 +08:00
										 |  |  |                         <a class="nav-link" href="/admin">前一页</a> | 
					
						
							| 
									
										
										
										
											2023-03-23 17:12:23 +08:00
										 |  |  |                     </li> | 
					
						
							|  |  |  |                 </ul> | 
					
						
							|  |  |  |             </div> | 
					
						
							|  |  |  |         </div> | 
					
						
							|  |  |  |     </nav> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-26 09:44:39 +08:00
										 |  |  |     {% for message in get_flashed_messages() %} | 
					
						
							|  |  |  |       <div class="alert alert-success" role="alert"> | 
					
						
							|  |  |  |         {{ message }} | 
					
						
							|  |  |  |       </div> | 
					
						
							|  |  |  |     {% endfor %} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-23 17:12:23 +08:00
										 |  |  |     <div class="card" style="margin-top:24px;"> | 
					
						
							|  |  |  |         <h5 style="margin-top: 10px;padding-left: 10px;">重置选中用户的信息</h5> | 
					
						
							|  |  |  |         <form id="user_form" action="" method="post" class="container mb-3"> | 
					
						
							|  |  |  |             <div> | 
					
						
							|  |  |  |                 <label class="form-label" style="padding-top: 10px;">用户</label> | 
					
						
							| 
									
										
										
										
											2023-03-25 22:21:49 +08:00
										 |  |  |                 <select onchange="loadUserExpiryDate()" id="username" name="username" class="form-select" aria-label="Default select example"> | 
					
						
							| 
									
										
										
										
											2023-03-23 17:12:23 +08:00
										 |  |  |                     <option selected>选择用户</option> | 
					
						
							|  |  |  |                     {% for user in user_list %} | 
					
						
							|  |  |  |                     <option value="{{ user.name }}">{{ user.name }}</option> | 
					
						
							|  |  |  |                     {% endfor %} | 
					
						
							|  |  |  |                 </select> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 <label class="form-label" style="padding-top: 10px;">修改密码</label> | 
					
						
							|  |  |  |                 <div> | 
					
						
							|  |  |  |                     <button type="button" id="reset_pwd_btn" class="btn btn-outline-success">获取12位随机密码</button> | 
					
						
							|  |  |  |                     <input style="margin-left: 20px;border: 0; font-size: 20px;" name="new_password" | 
					
						
							|  |  |  |                         id="new_password"></input> | 
					
						
							|  |  |  |                 </div> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 <label class="form-label" style="padding-top: 10px;">过期时间</label> | 
					
						
							|  |  |  |                 <div> | 
					
						
							| 
									
										
										
										
											2023-03-23 21:54:21 +08:00
										 |  |  |                     <input type="date" id="expiry_date" name="expiry_time" placeholder="YYYY-MM-DD" pattern="yyyyMMdd"> | 
					
						
							| 
									
										
										
										
											2023-03-23 17:12:23 +08:00
										 |  |  |                 </div> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             </div> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             <button style="margin-top: 50px;" type="submit" class="btn btn-primary">更新用户信息</button> | 
					
						
							|  |  |  |         </form> | 
					
						
							|  |  |  |     </div> | 
					
						
							|  |  |  | </body> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | <script> | 
					
						
							|  |  |  |     // 密码生成器 | 
					
						
							|  |  |  |     function generatePassword(length) { | 
					
						
							| 
									
										
										
										
											2023-05-06 17:24:51 +08:00
										 |  |  |         const charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^*()_+~`|}{[]\:;?,./-="; | 
					
						
							|  |  |  |         let password = ""; | 
					
						
							|  |  |  |         for (let i = 0; i < length; i++) { | 
					
						
							| 
									
										
										
										
											2023-03-23 17:12:23 +08:00
										 |  |  |             password += charset.charAt(Math.floor(Math.random() * charset.length)); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         return password; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     document.getElementById("reset_pwd_btn").addEventListener("click", () => { | 
					
						
							|  |  |  |         // 生成12位随机密码 | 
					
						
							|  |  |  |         let pwd = generatePassword(12) | 
					
						
							|  |  |  |         document.getElementById("new_password").value = pwd | 
					
						
							|  |  |  |     }) | 
					
						
							| 
									
										
										
										
											2023-03-25 21:20:19 +08:00
										 |  |  |     // 选择用户后更新其过期时间 | 
					
						
							| 
									
										
										
										
											2023-03-25 22:21:49 +08:00
										 |  |  |     function loadUserExpiryDate() { | 
					
						
							| 
									
										
										
										
											2023-03-31 13:39:28 +08:00
										 |  |  |         const cur_user = $('#username').val(); | 
					
						
							|  |  |  |         $.ajax({ | 
					
						
							|  |  |  |             type: "GET", | 
					
						
							|  |  |  |             url: `/admin/expiry?username=${cur_user}`, | 
					
						
							|  |  |  |             success: function(resp) { | 
					
						
							|  |  |  |                 const year = resp.substr(0,4); | 
					
						
							|  |  |  |                 const month = resp.substr(4,2); | 
					
						
							|  |  |  |                 const day = resp.substr(6,2); | 
					
						
							| 
									
										
										
										
											2023-03-25 21:20:19 +08:00
										 |  |  |                 document.getElementById("expiry_date").value = year + '-' + month + '-' + day | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2023-03-31 13:39:28 +08:00
										 |  |  |         }) | 
					
						
							| 
									
										
										
										
											2023-03-25 21:20:19 +08:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2023-03-23 17:12:23 +08:00
										 |  |  | </script> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-23 21:54:21 +08:00
										 |  |  | </html> |