mirror of
https://gitlab.ub.uni-bielefeld.de/sfb1288inf/nopaque.git
synced 2025-06-11 16:40:40 +00:00
Add CorpusFollowerList and functions
This commit is contained in:
@ -18,7 +18,7 @@ from app.models import (
|
||||
Corpus,
|
||||
CorpusFile,
|
||||
CorpusFollowerAssociation,
|
||||
CorpusFollowPermission,
|
||||
CorpusFollowerPermission,
|
||||
CorpusStatus,
|
||||
User
|
||||
)
|
||||
@ -30,7 +30,7 @@ from .forms import (
|
||||
)
|
||||
|
||||
|
||||
@bp.route('/<hashid:corpus_id>/enable_is_public', methods=['POST'])
|
||||
@bp.route('/<hashid:corpus_id>/is_public/enable', methods=['POST'])
|
||||
@login_required
|
||||
def enable_corpus_is_public(corpus_id):
|
||||
corpus = Corpus.query.get_or_404(corpus_id)
|
||||
@ -41,7 +41,7 @@ def enable_corpus_is_public(corpus_id):
|
||||
return '', 204
|
||||
|
||||
|
||||
@bp.route('/<hashid:corpus_id>/disable_is_public', methods=['POST'])
|
||||
@bp.route('/<hashid:corpus_id>/is_public/disable', methods=['POST'])
|
||||
@login_required
|
||||
def disable_corpus_is_public(corpus_id):
|
||||
corpus = Corpus.query.get_or_404(corpus_id)
|
||||
@ -89,30 +89,30 @@ def unfollow_corpus(corpus_id):
|
||||
return '', 204
|
||||
|
||||
|
||||
@bp.route('/<hashid:corpus_id>/followers/<hashid:user_id>/permissions/add', methods=['POST'])
|
||||
def add_permission(corpus_id, user_id, permission):
|
||||
corpus_follow_association = CorpusFollowerAssociation.query.filter_by(followed_corpus_id=corpus_id, following_user_id=user_id).first_or_404()
|
||||
permission = request.args.get('permission', type=int)
|
||||
corpus = corpus_follow_association.followed_corpus
|
||||
@bp.route('/<hashid:corpus_id>/followers/<hashid:corpus_follower_id>/permissions/<permission_name>/add', methods=['POST'])
|
||||
def add_permission(corpus_id, corpus_follower_id, permission_name):
|
||||
if permission_name not in [x.name for x in CorpusFollowerPermission]:
|
||||
abort(400)
|
||||
corpus_follower_association = CorpusFollowerAssociation.query.filter_by(followed_corpus_id=corpus_id, id=corpus_follower_id).first_or_404()
|
||||
corpus = corpus_follower_association.followed_corpus
|
||||
if not (corpus.user == current_user or current_user.is_administrator()):
|
||||
abort(403)
|
||||
if permission is None or permission not in iter(CorpusFollowPermission):
|
||||
abort(400)
|
||||
corpus_follow_association.add_permission(permission)
|
||||
permission_value = CorpusFollowerPermission[permission_name].value
|
||||
corpus_follower_association.add_permission(permission_value)
|
||||
db.session.commit()
|
||||
return '', 204
|
||||
|
||||
|
||||
@bp.route('/<hashid:corpus_id>/followers/<hashid:user_id>/permissions/remove', methods=['POST'])
|
||||
def remove_permission(corpus_id, user_id, permission):
|
||||
corpus_follow_association = CorpusFollowerAssociation.query.filter_by(followed_corpus_id=corpus_id, following_user_id=user_id).first_or_404()
|
||||
permission = request.args.get('permission')
|
||||
corpus = corpus_follow_association.followed_corpus
|
||||
@bp.route('/<hashid:corpus_id>/followers/<hashid:corpus_follower_id>/permissions/<permission_name>/remove', methods=['POST'])
|
||||
def remove_permission(corpus_id, corpus_follower_id, permission_name):
|
||||
if permission_name not in [x.name for x in CorpusFollowerPermission]:
|
||||
abort(400)
|
||||
corpus_follower_association = CorpusFollowerAssociation.query.filter_by(followed_corpus_id=corpus_id, id=corpus_follower_id).first_or_404()
|
||||
corpus = corpus_follower_association.followed_corpus
|
||||
if not (corpus.user == current_user or current_user.is_administrator()):
|
||||
abort(403)
|
||||
if permission is None or permission not in iter(CorpusFollowPermission):
|
||||
abort(400)
|
||||
corpus_follow_association.remove_permission(permission)
|
||||
permission_value = CorpusFollowerPermission[permission_name].value
|
||||
corpus_follower_association.remove_permission(permission_value)
|
||||
db.session.commit()
|
||||
return '', 204
|
||||
|
||||
|
Reference in New Issue
Block a user