계정 권한
일반적으로 보안 또는 계정 권한에 따라서 웹 사이트에서 표시되는 html 엘리먼트를 다르게 처리합니다. 지금까지는 포스트를 누구나 생성 할 수 있었지만, 이번 문서에서는 웹 사이트에 로그인 중인 유저만 이 기능을 사용 할 수 있도록 수정합니다.
blog/base.html에서 다음 코드를 수정합니다.
{% if user.is_authenticated %}
<a href="{% url 'post_new' %}" class="top-menu">
<span class="glyphicon glyphicon-plus"></span>
</a>
{% endif %}
포스트를 새로 생성하는 버튼을 장고 태그로 감싸고 있습니다. 태그에서는 사용자가 로그인 중인지 검사(is_authenticated)하고 버튼을 표시합니다. user는 장고 템플릿에서는 개발자가 따로 전달하지 않더라도 접근 할 수 있고, 사용자 계정의 정보를 포함합니다.
마찬가지로 포스트를 수정하는 버튼 역시 계정 로그인 여부를 확인(본인이 작성한 포스트인지는 검사하지 않습니다)합니다. blog/post_detail.html에서 다음 코드를 수정합니다.
{% if user.is_authenticated %}
<a class="btn btn-default" href="{% url 'post_edit' pk=post.pk %}">
<span class="glyphicon glyphicon-pencil"></span>
</a>
{% endif %}
이제 웹 사이트에서 로그인 상태인 경우에만 포스트 생성, 수정 버튼이 표시됩니다. 지금은 웹 사이트를 새로고침하더라도 이전 계정에 대한 세션 정보가 남아있기 때문에 자동으로 로그인 상태입니다. 새로운 브라우저 또는 시크릿 창을 실행하여 웹 사이트에 접속할 경우 포스트 생성과 수정 버튼이 사라진 것을 확인 할 수 있습니다. 크롬 웹 브라우저를 사용하고 있다면 우측 상단에 더 보기 버튼에서 새 시크릿 창을 클릭하면 시크릿 모드를 사용 할 수 있습니다.
'Pyhon > Django' 카테고리의 다른 글
[Pyhon/Django] 장고 기초#016. 장고 폼 수정(Edit)하기 (0) | 2022.01.02 |
---|---|
[Pyhon/Django] 장고 기초#015. 장고 폼 저장(Submit)하기 (0) | 2022.01.02 |
[Pyhon/Django] 장고 기초#014. 장고 폼(ModelForm) (0) | 2022.01.02 |
[Pyhon/Django] 장고 기초#013. 장고 애플리케이션 확장 (0) | 2022.01.02 |
[Pyhon/Django] 장고 기초#012. 장고 템플릿 확장(Template extending) (0) | 2022.01.02 |