권한 개념 모델링
개요
사용자에게 권한을 주는 모델을 총결하였다.
어떤 시스템의 편집, 열람 권한을 예로 들다.
개인에게 직접 수여하다
이것은 사용자 개인과 직접 관련된 모델이다.
분류도
plantuml
@startuml
hide class circle
hide class methods
skinparam shadowing false
ユーザー "*"-"*" 権限
@enduml
구부러진 그림
plantuml
@startuml
skinparam shadowing false
left to right direction
storage ユーザー {
rectangle Alice
rectangle Bob
}
storage 権限 {
rectangle 編集権限
rectangle 閲覧権限
}
Alice -- 編集権限 #red
Alice -- 閲覧権限 #red
Bob -- 閲覧権限 #red
@enduml
위에 있는 구부러진 그림은요.역할 부여
사용자 링크의 역할을 승인하여 사용자의 역할을 내보낼 수 있습니다.
분류도
plantuml
@startuml
hide class circle
hide class methods
skinparam shadowing false
ユーザー "*"-"*" 役割
役割 "*"-"*" 権限
ユーザー "*"-"*" 権限 #green: /導出1
note "[導出1] ユーザーが紐付く役割に紐付く権限全て" as N1
@enduml
구부러진 그림
plantuml
@startuml
skinparam shadowing false
left to right direction
storage 役割 {
rectangle 管理者
rectangle 一般
}
storage 権限 {
rectangle 閲覧権限
rectangle 編集権限
}
storage ユーザー {
rectangle Alice
rectangle Bob
rectangle Carol
}
Alice -- 管理者 #red
Bob -- 一般 #red
Carol -- 一般 #red
管理者 -- 閲覧権限 #green
管理者 -- 編集権限 #green
一般 -- 閲覧権限 #green
@enduml
위에 있는 구부러진 그림은요.작용의 구조화
캐릭터를 구성함으로써 권한을 부여하는 이유를 명확히 한다.
분류도
plantuml
@startuml
hide class circle
hide class methods
skinparam shadowing false
ユーザー "*"-"*" 役割
権限 "*"--"*" ユーザー #green: /導出2
役割 "0..1 親"-"* 子" 役割: [階層]
権限 "*"--"*" 役割
権限 "*"--"*" 役割 #green: /導出1
note "[導出1] 紐づく上位の階層の役割に紐づく権限全て\n[導出2] ユーザーが紐付く役割に紐付く権限全て" as N1
@enduml
구부러진 그림
plantuml
@startuml
skinparam shadowing false
storage 役割 {
rectangle プロジェクトメンバー
rectangle 一般
rectangle 管理者
一般 -[hidden] 管理者
}
storage 権限 {
rectangle 閲覧権限
rectangle 編集権限
閲覧権限 -[hidden]- 編集権限
}
storage ユーザー {
rectangle Bob
rectangle Alice
rectangle Carol
}
プロジェクトメンバー "親"--"子" 一般 #blue
プロジェクトメンバー "親"--"子" 管理者 #blue
プロジェクトメンバー - 閲覧権限 #green
管理者 - 編集権限 #green
一般 -- Bob #red
一般 -- Carol #red
管理者 -- Alice #red
@enduml
위에 있는 구부러진 그림은요.작용은 지방의 구조화를 유지한다
사용자가 작용하는 이유를 기술함으로써 더욱 명확해지려고 한다.
분류도
plantuml
@startuml
hide class circle
hide class methods
skinparam shadowing false
ユーザー "1"-"*" アサイン
アサイン "*"-"1" 役割
アサイン "*"--"1" プロジェクト
権限 "*"--"*" ユーザー #green: /導出2
役割 "0..1 親"-"* 子" 役割: [階層]
権限 "*"--"*" 役割
権限 "*"--"*" 役割 #green: /導出1
note "[導出1] 紐づく上位の階層の役割に紐づく権限全て\n[導出2] ユーザーがアサインによって紐付けられた役割に紐付く権限全てを\nそのアサインに紐づくプロジェクト内で持つ" as N1
@enduml
구부러진 그림
plantuml
@startuml
skinparam shadowing false
storage 役割 {
rectangle プロジェクトメンバー
rectangle 一般
rectangle 管理者
一般 -[hidden] 管理者
}
storage 権限 {
rectangle 閲覧権限
rectangle 編集権限
閲覧権限 -[hidden]- 編集権限
}
storage ユーザー {
rectangle Bob
rectangle Alice
rectangle Carol
}
storage アサイン {
rectangle "(1)" as A
rectangle "(2)" as B
rectangle "(3)" as C
rectangle "(4)" as D
}
storage プロジェクト {
rectangle Aプロジェクト
rectangle Bプロジェクト
}
プロジェクトメンバー "親"--"子" 一般 #blue
プロジェクトメンバー "親"--"子" 管理者 #blue
プロジェクトメンバー - 閲覧権限 #green
管理者 - 編集権限 #green
管理者 -- A #red
一般 -- B #darkgreen
管理者 -- C #darkblue
一般 -- D #purple
A -- Aプロジェクト #red
B -- Aプロジェクト #darkgreen
C -- Bプロジェクト #darkblue
D -- Bプロジェクト #purple
A -- Alice #red
B -- Bob #darkgreen
C -- Bob #darkblue
D -- Carol #purple
@enduml
위에 있는 구부러진 그림은요.진일보 모델링
권한을 가지는 방법의 모델링을 했지만 사용자가 권한이 있다면 그 이유와 세트로 모델링하는 일을 명확히 할 수 있다.
역할의 모델링에 대해 분석 모델[1]의 제2장'책임 관계'를 참고했다.내가 진일보한 모델링을 진행하고 싶을 때 이쪽을 참고하면 된다.
단, 분석 모델의 p.13
모델링의 원칙은 모델링이 정확한지 틀린 것이 아니라 사용하기 쉽고 사용하기 어렵다는 것이다.
이처럼 사실을 세부적으로 완전히 표현하는 것이 아니라 사용하기에 적합한 모델을 선택하는 것이 중요하다.
각주
Martin Fowler(2002) 분석 모델: 재사용 가능한 객체 모델, 피어 편집↩︎
Reference
이 문제에 관하여(권한 개념 모델링), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/fuuki/articles/20201220-permission-modeling텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)