@startuml
title "WordPress Roles and Capabilities"
!theme mars
left to right direction
skinparam nodesep 20
skinparam ranksep 100
package Editor {
actor Editor as edi #Green
rectangle Pages {
usecase "Delete Others Pages" as delete_others_pages #LightBlue
usecase "Delete Own Pages" as delete_pages #LightBlue
usecase "Delete Private Pages" as delete_private_pages #LightBlue
usecase "Delete Own Published Pages" as delete_published_pages #LightBlue
usecase "Edit Others Pages" as edit_others_pages #LightBlue
usecase "Edit Own Pages" as edit_pages #LightBlue
usecase "Edit Private Pages" as edit_private_pages #LightBlue
usecase "Edit Own Published Pages" as edit_published_pages #LightBlue
usecase "Publish Own Pages" as publish_pages #LightBlue
usecase "Read Private Pages" as read_private_pages #LightBlue
}
rectangle "Posts " {
usecase "Delete Others Posts" as delete_others_posts #LightGreen
usecase "Delete Private Posts" as delete_private_posts #LightGreen
usecase "Edit Others Posts" as edit_others_posts #LightGreen
usecase "Edit Private Posts" as edit_private_posts #LightGreen
usecase "Read Private Posts" as read_private_posts #LightGreen
}
usecase "Manage Categories" as manage_categories #LightPink
usecase "Manage Links" as manage_links #LightPink
usecase "Moderate Comments" as moderate_comments #Coral
usecase "Post HTML/JS" as unfiltered_html #Olive
package Author {
actor Author as aut #Blue
rectangle Posts {
usecase "Publish Own Posts" as publish_posts #LightGreen
usecase "Edit Own Published Posts" as edit_published_posts #LightGreen
usecase "Delete Own Published Posts" as delete_published_posts #LightGreen
}
usecase "Add New Media" as upload_files #RosyBrown
package Contributor {
actor Contributor as con #Indigo
usecase "Edit Own Posts" as edit_posts #LightGreen
usecase "Delete Own Posts" as delete_posts #LightGreen
package Subscriber {
actor Subscriber as sub #Violet
usecase "Manage Own profile" as read #Orange
}
}
}
}
' Subscriber
sub --> read
' Contributor
con --|> sub
con --> edit_posts
con --> delete_posts
' Author
aut --|> con
aut --> publish_posts
aut --> edit_published_posts
aut --> delete_published_posts
aut --> upload_files
' Editor
edi --|> aut
edi --> delete_others_pages
edi --> delete_others_posts
edi --> delete_pages
edi --> delete_private_pages
edi --> delete_private_posts
edi --> delete_published_pages
edi --> edit_others_pages
edi --> edit_others_posts
edi --> edit_pages
edi --> edit_private_pages
edi --> edit_private_posts
edi --> edit_published_pages
edi --> manage_categories
edi --> manage_links
edi --> moderate_comments
edi --> publish_pages
edi --> read_private_pages
edi --> read_private_posts
edi --> unfiltered_html
@enduml
The use case diagram represents different WordPress roles and their corresponding permissions. Here is a description of this use case diagram:
The diagram showcases the following roles and their associated permissions in WordPress:
- Subscriber: Subscribers have the ability to manage their own profile, which includes viewing and modifying their personal information.
- Contributor: Contributors have additional capabilities compared to subscribers. They can create and edit their own posts. Contributors can also delete their own posts.
- Author: Authors have all the permissions of contributors. In addition, they can publish their own posts, edit their own published posts, and delete their own published posts. Authors also have the ability to upload files such as media.
- Editor: Editors have the most extensive set of permissions. They possess all the capabilities of authors and contributors. Additionally, editors can perform actions on other users’ posts, such as deleting others’ pages and posts, editing others’ pages and posts, and managing categories and links. Editors also have the authority to moderate comments and post HTML/JS content without filtering.
The arrows in the diagram indicate the hierarchical relationships between the roles. Here are the relationships:
- Subscribers are at the base of the hierarchy and have no sub-roles.
- Contributors are a level above subscribers and inherit the capabilities of subscribers.
- Authors are a level above contributors and inherit the capabilities of contributors.
- Editors are at the top of the hierarchy and inherit the capabilities of authors.
By visualizing the roles and their associated permissions, the use case diagram provides a clear overview of the different levels of access and control within the WordPress platform.