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 }}
|
||||
</div>
|
||||
</div>
|
||||
<!-- <router-link :to="{name: 'cockpitUserProfile', params: {userId: participant.id}}" class="underline">-->
|
||||
<!-- {{ $t("a.Profil anzeigen") }}-->
|
||||
<!-- </router-link>-->
|
||||
<router-link
|
||||
:to="{ name: 'cockpitUserProfile', params: { userId: participant.id } }"
|
||||
class="underline"
|
||||
>
|
||||
{{ $t("cockpit.profileLink") }}
|
||||
</router-link>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ from vbv_lernwelt.iam.permissions import (
|
|||
has_course_access_by_page_request,
|
||||
is_circle_expert,
|
||||
is_course_session_expert,
|
||||
is_user_mentor,
|
||||
)
|
||||
from vbv_lernwelt.learning_mentor.models import LearningMentor
|
||||
|
||||
|
|
@ -76,8 +77,14 @@ def request_course_completion(request, course_session_id):
|
|||
|
||||
@api_view(["GET"])
|
||||
def request_course_completion_for_user(request, course_session_id, user_id):
|
||||
if request.user.id == user_id or is_course_session_expert(
|
||||
request.user, course_session_id
|
||||
if (
|
||||
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)
|
||||
raise PermissionDenied()
|
||||
|
|
|
|||
|
|
@ -64,12 +64,7 @@ def is_course_session_expert(user, course_session_id: int):
|
|||
role=CourseSessionUser.Role.EXPERT,
|
||||
).exists()
|
||||
|
||||
is_learning_mentor = LearningMentor.objects.filter(
|
||||
mentor=user,
|
||||
course=course_session.course,
|
||||
).exists()
|
||||
|
||||
return is_supervisor or is_expert or is_learning_mentor
|
||||
return is_supervisor or is_expert
|
||||
|
||||
|
||||
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:
|
||||
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 False
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ from vbv_lernwelt.course.creators.test_utils import (
|
|||
from vbv_lernwelt.course.models import CourseSessionUser
|
||||
from vbv_lernwelt.course_session_group.models import CourseSessionGroup
|
||||
from vbv_lernwelt.iam.permissions import is_course_session_expert
|
||||
from vbv_lernwelt.learning_mentor.models import LearningMentor
|
||||
|
||||
|
||||
class ExpertTestCase(TestCase):
|
||||
|
|
@ -50,21 +49,6 @@ class ExpertTestCase(TestCase):
|
|||
# THEN
|
||||
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):
|
||||
# GIVEN
|
||||
csu = CourseSessionUser.objects.create(
|
||||
|
|
|
|||
Loading…
Reference in New Issue