You've already forked Mailu
							
							
				mirror of
				https://github.com/Mailu/Mailu.git
				synced 2025-10-30 23:37:43 +02:00 
			
		
		
		
	Add the auto-reply feature in the admin panel
This commit is contained in:
		| @@ -42,6 +42,12 @@ class UserForwardForm(Form): | ||||
|     submit = fields.SubmitField('Update') | ||||
|  | ||||
|  | ||||
| class UserReplyForm(Form): | ||||
|     reply_subject = fields.StringField('Reply subject') | ||||
|     reply_body = fields.StringField('Reply body', widget=widgets.TextArea()) | ||||
|     submit = fields.SubmitField('Update') | ||||
|  | ||||
|  | ||||
| class AliasCreateForm(Form): | ||||
|     localpart = fields.StringField('Alias', [validators.DataRequired()]) | ||||
|     destination = fields.StringField('Destination', widget=widgets.TextArea()) | ||||
|   | ||||
| @@ -60,9 +60,13 @@ class User(Address): | ||||
|     domain = db.relationship(Domain, backref='users') | ||||
|     password = db.Column(db.String(255), nullable=False) | ||||
|     quota_bytes = db.Column(db.Integer(), nullable=False, default=10**9) | ||||
|     forward = db.Column(db.String(160), nullable=True, default=None) | ||||
|     global_admin = db.Column(db.Boolean(), nullable=False, default=False) | ||||
|  | ||||
|     # Filters | ||||
|     forward = db.Column(db.String(160), nullable=True, default=None) | ||||
|     reply_topic = db.Column(db.String(255), nullable=True, default=None) | ||||
|     reply_body = db.Column(db.Text(), nullable=True, default=None) | ||||
|  | ||||
|     is_authenticated = True | ||||
|     is_active = True | ||||
|     is_anonymous = False | ||||
|   | ||||
| @@ -19,8 +19,8 @@ | ||||
|       </a> | ||||
|     </li> | ||||
|     <li> | ||||
|       <a href="{{ url_for('user_vacation') }}"> | ||||
|         <i class="fa fa-plane"></i> <span>Vacation</span> | ||||
|       <a href="{{ url_for('user_reply') }}"> | ||||
|         <i class="fa fa-plane"></i> <span>Auto-reply</span> | ||||
|       </a> | ||||
|     </li> | ||||
|     <li> | ||||
|   | ||||
							
								
								
									
										9
									
								
								admin/freeposte/templates/user/reply.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								admin/freeposte/templates/user/reply.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| {% extends "form.html" %} | ||||
|  | ||||
| {% block title %} | ||||
| Automatic reply | ||||
| {% endblock %} | ||||
|  | ||||
| {% block subtitle %} | ||||
| {{ user }} | ||||
| {% endblock %} | ||||
| @@ -1 +0,0 @@ | ||||
| {% extends "working.html" %} | ||||
| @@ -103,14 +103,25 @@ def user_forward(user_email): | ||||
|         if user_email: | ||||
|             return flask.redirect( | ||||
|                 flask.url_for('user_list', domain_name=user.domain.name)) | ||||
|     return flask.render_template('user/forward.html', form=form, user=useré) | ||||
|     return flask.render_template('user/forward.html', form=form, user=user) | ||||
|  | ||||
|  | ||||
| @app.route('/user/vacation', methods=['GET', 'POST'], defaults={'user_email': None}) | ||||
| @app.route('/user/vacation<user_email>', methods=['GET', 'POST']) | ||||
| @app.route('/user/reply', methods=['GET', 'POST'], defaults={'user_email': None}) | ||||
| @app.route('/user/reply/<user_email>', methods=['GET', 'POST']) | ||||
| @flask_login.login_required | ||||
| def user_vacation(user_email): | ||||
|     return flask.render_template('user/vacation.html') | ||||
| def user_reply(user_email): | ||||
|     user = utils.get_user(user_email) | ||||
|     form = forms.UserReplyForm() | ||||
|     if form.validate_on_submit(): | ||||
|         user.reply_subject = form.reply_subject.data | ||||
|         user.reply_body = form.reply_body.data | ||||
|         db.session.add(user) | ||||
|         db.session.commit() | ||||
|         flask.flash('Auto-reply message updated for %s' % user) | ||||
|         if user_email: | ||||
|             return flask.redirect( | ||||
|                 flask.url_for('user_list', domain_name=user.domain.name)) | ||||
|     return flask.render_template('user/reply.html', form=form, user=user) | ||||
|  | ||||
|  | ||||
| @app.route('/user/fetchmail', methods=['GET', 'POST'], defaults={'user_email': None}) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user