어드민 유저 권한 시스템 설계(Admin user authority system design)



## 어드민 유저 권한 시스템 설계

### 문제 상황

- 현재 어드민 페이지 권한 종류가 [전체 읽기/쓰기], [전체 읽기] 밖에 없음
    - 전체 읽기 - 다 읽을 수 있음
    - 전체 읽기/쓰기 - 다 수정, 삭제할 수 있음
- 어드민 페이지를 이용해야하는 사람은 많음
- 어드민 페이지를 이용하려면 admin 권한을 줄 수 밖에 없는 상황. 그런데 admin 권한이 너무 큼

### 요구사항

- 기존 권한 시스템을 최대한 가지고 가면서, 필요한 권한만 부여할 수 있는 권한 시스템을 도입해야 함

### 설계

- 구성
    - 유저, 스코프, 메소드로 구성되어있음
        - 유저(사용자)
        - 스코프(기능 또는 페이지 단위)
            - 어드민 특정 기능 또는 페이지 단위
        - 메소드(API 주소)
            - EX) api::route::get::/api/product/string:oid
    - 유저는 스코프를 갖고, 스코프는 메소드를 갖고 있음
        - 유저는 스코프 리스트, 스코프는 메소드(요청 가능한 API)의 리스트를 가지고 있음
            
            <div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaWfsYomxO0zqZoFpjjWjp429YQLtRNbRZfVhriddLmLnhWlOAAamETTsouO40kIFS61SBgH82ei23d2ZgEQLJT0Z2sbOnGKNm-lebKyLpod4FNTaiSnrfOWHyOiUt83gyXMEj8Ohs2GLNkmm_oNu1Svrgg5WCfOt2H9RFmuISY9m0am_d8TabLHcDVL0z/s1480/%E1%84%80%E1%85%AF%E1%86%AB%E1%84%92%E1%85%A1%E1%86%AB1.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" data-original-height="668" data-original-width="1480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaWfsYomxO0zqZoFpjjWjp429YQLtRNbRZfVhriddLmLnhWlOAAamETTsouO40kIFS61SBgH82ei23d2ZgEQLJT0Z2sbOnGKNm-lebKyLpod4FNTaiSnrfOWHyOiUt83gyXMEj8Ohs2GLNkmm_oNu1Svrgg5WCfOt2H9RFmuISY9m0am_d8TabLHcDVL0z/s320/%E1%84%80%E1%85%AF%E1%86%AB%E1%84%92%E1%85%A1%E1%86%AB1.png" width="320"/></a></div>
            
    - 유저에게 스코프 할당을 보다 편하게 하기 위해 자주 사용되는 스코프를 preset 으로 묶음
        
        <div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-2nigCiZjhSLuV6NIMT_JTwMZQDEusWtOl1P2NEK5GhMZF-Kj__jMDFc2Cr5s50aAkLfB9xt1dAqeMAKXgA_7SQfs4JtyWGI59gkwMePKHFn2H8s5Mg1cKxwYiUEDLfRWK2EOcNtBLGQqMKkGApMAM1sTjZp_shMLgcDNFg1H8_J3wOTcpsy2G2rMgxQH/s1436/%E1%84%80%E1%85%AF%E1%86%AB%E1%84%92%E1%85%A1%E1%86%AB.png" style="display: block; padding: 1em 0; text-align: center; "><img alt="" border="0" data-original-height="434" data-original-width="1436" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-2nigCiZjhSLuV6NIMT_JTwMZQDEusWtOl1P2NEK5GhMZF-Kj__jMDFc2Cr5s50aAkLfB9xt1dAqeMAKXgA_7SQfs4JtyWGI59gkwMePKHFn2H8s5Mg1cKxwYiUEDLfRWK2EOcNtBLGQqMKkGApMAM1sTjZp_shMLgcDNFg1H8_J3wOTcpsy2G2rMgxQH/s320/%E1%84%80%E1%85%AF%E1%86%AB%E1%84%92%E1%85%A1%E1%86%AB.png" width="320"/></a></div>


댓글

이 블로그의 인기 게시물

부트스트랩 사용 시 버튼 오른쪽 정렬하는 방법 (How to use float-right for right align in bootstrap)

맥(Mac)에서 MySql 사용 시 Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 오류가 발생하는 경우 해결 방법

HTML, CSS - footer fixed (foot 하단 고정 시키기)