dboard: 기본 모델 생성
게시판, 게시물, 사용자, 댓글 - 이건 매우 뻔하다고 볼 수 있다.
사용자들의 권한관리를 어떻게 할까 잠깐 생각해봤다. 레벨이나 등급 기반으로 할까도 생각했는데 유연성이 떨어질 것 같아서, 사용자에게 usertag 를 여러개 달아주고 그에 맞춰 권한이 부여되도록 해볼까 한다. 해보고 아니다 싶으면 부수고 다시 만들면 되니까 일단 후다닥 해본다.
예를 들어 사용자 A_USER 가 있고 게시판 B_BOARD, C_BOARD 가 있다고 할 때에,
B_BOARD.read_permission_tags = [B_READ, B_WRITE]
B_BOARD.write_permission_tags = [B_WRITE]
C_BOARD.read_permission_tags = [C_READ, C_WRITE]
C_BOARD.write_permission_tags = [C_WRITE]
이런 식으로 기본 설정이 만들어진다.
A_USER.user_tags 안에 B_READ, B_WRITE, C_READ, C_WRITE 등이 들어가게 되면 해당 게시판에 권한을 가지게 되는 것. 어쩌다 보면 READ 권한 없이 WRITE 만 가능하게 된다거나 할 수도 있다. 그리고, 특정 usertag 를 가지고 권한을 넣고 빼는 것도 가능하다. 예를 들면, 2023_12_25_LOGIN 같은 태그를 2023/12/25 에 로그인한 유저들에게 부여하는 이벤트를 하고, 특정 게시판의 R/W 권한을 2023_12_25_LOGIN태그에 준다거나...
... 라고 열심히 썼지만 결국 오라클이나 AWS의 Attribute based access control 에 비하면 뭐 아무것도 아니긴 하다.
이제 만들어볼 것:
잠깐 더 생각해볼 것: