feat: vv user profile
This commit is contained in:
parent
0e487cd7d0
commit
55d418602f
|
|
@ -27,9 +27,12 @@ const { summary } = useMentorCockpit(courseSession.value.id);
|
||||||
{{ participant.email }}
|
{{ participant.email }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- <router-link :to="{name: 'cockpitUserProfile', params: {userId: participant.id}}" class="underline">-->
|
<router-link
|
||||||
<!-- {{ $t("a.Profil anzeigen") }}-->
|
:to="{ name: 'cockpitUserProfile', params: { userId: participant.id } }"
|
||||||
<!-- </router-link>-->
|
class="underline"
|
||||||
|
>
|
||||||
|
{{ $t("cockpit.profileLink") }}
|
||||||
|
</router-link>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ from vbv_lernwelt.iam.permissions import (
|
||||||
has_course_access_by_page_request,
|
has_course_access_by_page_request,
|
||||||
is_circle_expert,
|
is_circle_expert,
|
||||||
is_course_session_expert,
|
is_course_session_expert,
|
||||||
|
is_user_mentor,
|
||||||
)
|
)
|
||||||
from vbv_lernwelt.learning_mentor.models import LearningMentor
|
from vbv_lernwelt.learning_mentor.models import LearningMentor
|
||||||
|
|
||||||
|
|
@ -76,8 +77,14 @@ def request_course_completion(request, course_session_id):
|
||||||
|
|
||||||
@api_view(["GET"])
|
@api_view(["GET"])
|
||||||
def request_course_completion_for_user(request, course_session_id, user_id):
|
def request_course_completion_for_user(request, course_session_id, user_id):
|
||||||
if request.user.id == user_id or is_course_session_expert(
|
if (
|
||||||
request.user, course_session_id
|
request.user.id == user_id
|
||||||
|
or is_course_session_expert(request.user, course_session_id)
|
||||||
|
or is_user_mentor(
|
||||||
|
mentor=request.user,
|
||||||
|
participant_user_id=user_id,
|
||||||
|
course_session_id=course_session_id,
|
||||||
|
)
|
||||||
):
|
):
|
||||||
return _request_course_completion(course_session_id, user_id)
|
return _request_course_completion(course_session_id, user_id)
|
||||||
raise PermissionDenied()
|
raise PermissionDenied()
|
||||||
|
|
|
||||||
|
|
@ -64,12 +64,7 @@ def is_course_session_expert(user, course_session_id: int):
|
||||||
role=CourseSessionUser.Role.EXPERT,
|
role=CourseSessionUser.Role.EXPERT,
|
||||||
).exists()
|
).exists()
|
||||||
|
|
||||||
is_learning_mentor = LearningMentor.objects.filter(
|
return is_supervisor or is_expert
|
||||||
mentor=user,
|
|
||||||
course=course_session.course,
|
|
||||||
).exists()
|
|
||||||
|
|
||||||
return is_supervisor or is_expert or is_learning_mentor
|
|
||||||
|
|
||||||
|
|
||||||
def is_course_session_member(user, course_session_id: int | None = None):
|
def is_course_session_member(user, course_session_id: int | None = None):
|
||||||
|
|
@ -190,7 +185,11 @@ def can_view_profile(user: User, profile_user: CourseSessionUser) -> bool:
|
||||||
if user == profile_user.user:
|
if user == profile_user.user:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
if is_course_session_expert(user, profile_user.course_session_id):
|
if is_course_session_expert(user, profile_user.course_session.id) or is_user_mentor(
|
||||||
|
mentor=user,
|
||||||
|
participant_user_id=profile_user.user.id,
|
||||||
|
course_session_id=profile_user.course_session.id,
|
||||||
|
):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,6 @@ from vbv_lernwelt.course.creators.test_utils import (
|
||||||
from vbv_lernwelt.course.models import CourseSessionUser
|
from vbv_lernwelt.course.models import CourseSessionUser
|
||||||
from vbv_lernwelt.course_session_group.models import CourseSessionGroup
|
from vbv_lernwelt.course_session_group.models import CourseSessionGroup
|
||||||
from vbv_lernwelt.iam.permissions import is_course_session_expert
|
from vbv_lernwelt.iam.permissions import is_course_session_expert
|
||||||
from vbv_lernwelt.learning_mentor.models import LearningMentor
|
|
||||||
|
|
||||||
|
|
||||||
class ExpertTestCase(TestCase):
|
class ExpertTestCase(TestCase):
|
||||||
|
|
@ -50,21 +49,6 @@ class ExpertTestCase(TestCase):
|
||||||
# THEN
|
# THEN
|
||||||
self.assertTrue(is_expert)
|
self.assertTrue(is_expert)
|
||||||
|
|
||||||
def test_learning_mentor(self):
|
|
||||||
# GIVEN
|
|
||||||
lm = LearningMentor.objects.create(
|
|
||||||
mentor=self.user,
|
|
||||||
course=self.course,
|
|
||||||
)
|
|
||||||
|
|
||||||
# WHEN
|
|
||||||
is_expert = is_course_session_expert(
|
|
||||||
user=lm.mentor, course_session_id=self.course_session.id
|
|
||||||
)
|
|
||||||
|
|
||||||
# THEN
|
|
||||||
self.assertTrue(is_expert)
|
|
||||||
|
|
||||||
def test_expert(self):
|
def test_expert(self):
|
||||||
# GIVEN
|
# GIVEN
|
||||||
csu = CourseSessionUser.objects.create(
|
csu = CourseSessionUser.objects.create(
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue