SlideShare ist ein Scribd-Unternehmen logo
1 von 31
Phân quyền và phân quyền mở rộng trong Worpdress
ww.zend.vn
Tự giới thiệu
 Họ tên: Phạm Vũ Khánh
 Năm sinh: 1978
 Kinh nghiệm: Nghiên cứu và làm việc trong lĩnh vực
thiết kế và lập trình Website từ 1999
 Các vị trí đã từng đảm nhận: Developer, Designer,
Leader, BA, R&D manager, PM, IT manager…
 Công việc hiện tại: CEO & Founder of ZendVN
 Điện thoại: 090 889 33 26
 Email: vukhanh2212@gmail.com
ww.zend.vn
Nội dung trình bày
A. Giới thiệu Roles ( ~ Nhóm người dùng)
B. Giới thiệu Capabilities (~ Quyền hạn)
C. Roles & Capabilities
D. Tạo Custom roles
E. Tạo Custom capabilities
F. Kết hợp Custom roles & Custom capabilities
G. Demo: phân quyền cho Article plugin
ww.zend.vn
https://codex.wordpress.org/Roles_and_Capabilities
ww.zend.vn
A. Giới thiệu Roles
1. Super Admin
2. Administrator
3. Editor
4. Author
5. Contributor
6. Subscriber
https://codex.wordpress.org/Roles_and_Capabilities
ww.zend.vn
A. Giới thiệu Roles
1. Super Admin:
somebody with access to the site network
administration features and all other features. See
the Create a Network article.
2. Administrator:
somebody who has access to all the administration
features within a single site.
3. Editor (Biên tập viên):
somebody who can publish and manage posts
including the posts of other users.
ww.zend.vn
A. Giới thiệu Roles
4. Author (tác giả):
somebody who can publish and manage their own
posts.
5. Contributor (cộng tác viên):
somebody who can write and manage their own
posts but cannot publish them.
6. Subscriber (Người đọc):
somebody who can only manage their profile.
ww.zend.vn
https://codex.wordpress.org/Roles_and_Capabilities
ww.zend.vn
B. Giới thiệu Capabilities
1. Super Admin:
manage_network
manage_sites
manage_network_users
manage_network_plugins
manage_network_themes
manage_network_options
ww.zend.vn
B. Giới thiệu Capabilities
Để thấy rõ quyền của các nhóm chúng ta có 2 cách:
- https://codex.wordpress.org/Roles_and_Capabilities
- Sử dụng WPFront User Role Editor plugin
ww.zend.vn
A. Giới thiệu Capabilities
ww.zend.vn
https://codex.wordpress.org/Roles_and_Capabilities
ww.zend.vn
C. Roles & Capabilities
- Mỗi Role (nhóm) trong WP sẽ được thiết lập một số
quyền (Capability) nhất định
- Để thay đổi quyền hạn của một nhóm nào đó chúng
ta có 2 cách
- Dùng một số plugin hỗ trợ phân quyền
- Viết mã bổ xung trong Custom plugin của chúng ta
ww.zend.vn
C. Roles & Capabilities
Những thao tác cơ bản trên WPFront User Role Editor
 All Roles
 Add New (Role)
 Restore
 Add/Remove Cap
 Settings
ww.zend.vn
C.1. Thông tin của User
 Lấy thông tin user hiện thời
global $current_user;
$user = $current_user;// Cách 1
$user = wp_get_current_user(); // Cách 2
 Lấy thông tin của một user bất kỳ
$user = new WP_User(3);
print_r($user);
ww.zend.vn
C.1. Thông tin của User
 Cấu trúc đối tượng WP_User
WP_User
(
[data]
[ID]
[caps]
[cap_key]
[roles
[allcaps]
[filter]
)
ww.zend.vn
C.2. Thay đổi Role của User
 Thêm Role cho user
$user = new WP_User(3); //ID=3 – Editor
$user->add_role( 'subscriber' );
 Loại Role của user
$user = new WP_User(3);
$user->remove_role('editor');
ww.zend.vn
C.2. Thay đổi Role của User
 Thiết lập lại Role cho user
$user = new WP_User(3);
$user->set_role('editor');
C.3. Thay đổi quyền hạn cho User
 Thêm Cap cho user
$user = new WP_User(3);
$user->add_cap('activate_plugins',true);
 Xóa Cap của user
$user = new WP_User(3);
$user->remove_cap('activate_plugins');
C.3. Thay đổi quyền hạn cho User
 Xóa toàn bộ Cap cho user
$user = new WP_User(3);
$user->remove_all_caps();
 Kiểm tra quyền (Cap) của user
$user = new WP_User(3);
if(!$user->has_cap('edit_users')){
echo '<br/>' . 'User này không có edit user';
}
ww.zend.vn
C.4. Caps của nhóm (roles)
 Lấy thông tin của một nhóm
$role = get_role( 'editor' );
print_r($role);
ww.zend.vn
C.4. Caps của nhóm (roles)
 Lấy thông tin của một nhóm
WP_Role Object
(
[name] => editor
[capabilities] => Array
(
[moderate_comments] => 1
[manage_categories] => 1
...
)
)
ww.zend.vn
C.4. Caps của nhóm (roles)
 Thêm quyền cho nhóm
$role = get_role( 'editor' );
$role->add_cap('switch_themes');
$role->add_cap('manage_options');
 Xóa quyền của nhóm
$role = get_role( 'editor' );
$role->remove_cap('switch_themes');
$role->remove_cap('manage_options');
ww.zend.vn
ww.zend.vn
D. Tạo Custom Roles
 Thêm một nhóm mới
add_role( 'zendvn_student',
'Student of ZendVN', array());
 Thêm một nhóm mới và sao chép quyền
$role = get_role( 'author' );
$caps = $role->capabilities;
add_role( 'zendvn_student', 'Student of ZendVN',
$caps );
ww.zend.vn
ww.zend.vn
E. Tạo Custom Capabilities
 Thêm Caps cho nhóm có sẵn trong WP
$caps = array(
'zendvn_mp_articles',
'zendvn_mp_article_list',
'zendvn_mp_article_add',
'zendvn_mp_article_edit',
'zendvn_mp_article_delete',
'zendvn_mp_article_status'
);
$role = get_role('administrator');
foreach ($caps as $val){
$role->add_cap($val);
}
ww.zend.vn
ww.zend.vn
F. Custom roles & Custom capabilities
 Thêm Role mới và Caps cho nhóm
$caps = array(
'zendvn_mp_articles',
'zendvn_mp_article_list',
'zendvn_mp_article_add',
'zendvn_mp_article_edit',
'zendvn_mp_article_delete',
'zendvn_mp_article_status'
);
add_role( 'zendvn_student',
'Student of ZendVN', array());
ww.zend.vn
ww.zend.vn
Wp hoi-thao-phan-quyen

Weitere ähnliche Inhalte

Was ist angesagt?

Bài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng web
Bài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng webBài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng web
Bài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng webMasterCode.vn
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webMasterCode.vn
 
Mysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng ViệtMysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng ViệtKhanhPham
 
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webBài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webMasterCode.vn
 
Hỏi tình hình bk tiny bktiny-hdsd
Hỏi tình hình bk tiny   bktiny-hdsdHỏi tình hình bk tiny   bktiny-hdsd
Hỏi tình hình bk tiny bktiny-hdsdVu Hung Nguyen
 
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPTBài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPTMasterCode.vn
 
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao KhanhPham
 
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ JavaHướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ JavaHuy Vũ
 
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong WordpressTài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong WordpressKhanhPham
 
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTBài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTMasterCode.vn
 
tao module joomla 1.5
tao module  joomla 1.5tao module  joomla 1.5
tao module joomla 1.5dvms
 
E learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPE learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPelearninglabvn
 
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản KhanhPham
 
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPTBài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPTMasterCode.vn
 

Was ist angesagt? (20)

Web301 slide 4
Web301   slide 4Web301   slide 4
Web301 slide 4
 
Web301 slide 2
Web301   slide 2Web301   slide 2
Web301 slide 2
 
Bài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng web
Bài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng webBài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng web
Bài 3 Một số kỹ thuật lập trình PHP nâng cao - Xây dựng ứng dụng web
 
Joo
JooJoo
Joo
 
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng webBài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
Bài 1 Lập trình website theo mô hình MVC - Xây dựng ứng dụng web
 
Mysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng ViệtMysql Workbench hướng dẫn cài đặt - Video tiếng Việt
Mysql Workbench hướng dẫn cài đặt - Video tiếng Việt
 
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng webBài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
Bài 2 Các kỹ thuật lập trình MySQL với PHP nâng cao - Xây dựng ứng dụng web
 
Hỏi tình hình bk tiny bktiny-hdsd
Hỏi tình hình bk tiny   bktiny-hdsdHỏi tình hình bk tiny   bktiny-hdsd
Hỏi tình hình bk tiny bktiny-hdsd
 
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPTBài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
Bài 6 Lập trình PHP (phần 4) Làm việc với cookie và session - Giáo trình FPT
 
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao
Học lập trình Wordpress - bài 2 - Tìm hiểu cấu trúc và cấu hình nâng cao
 
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ JavaHướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
Hướng dẫn xây dựng ứng dụng web theo mô hình MVC bằng ngôn ngữ Java
 
Web301 slide 3
Web301   slide 3Web301   slide 3
Web301 slide 3
 
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong WordpressTài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
Tài liệu lập trình Wordpress - bài 5 - Action và Action hook trong Wordpress
 
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPTBài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
Bài 7: Thư viện jQuery và thư viện jQuery UI - Giáo trình FPT
 
tao module joomla 1.5
tao module  joomla 1.5tao module  joomla 1.5
tao module joomla 1.5
 
Web201 slide 6
Web201   slide 6Web201   slide 6
Web201 slide 6
 
E learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHPE learning lab - Tim hieu Cake PHP
E learning lab - Tim hieu Cake PHP
 
Web301 slide 1
Web301   slide 1Web301   slide 1
Web301 slide 1
 
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
Giáo trình lập trình Wordpress - bài 4 - Tạo Plugin căn bản
 
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPTBài 3 Lập trình PHP (phần 1) - Giáo trình FPT
Bài 3 Lập trình PHP (phần 1) - Giáo trình FPT
 

Andere mochten auch

How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksSlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShareSlideShare
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShareKapost
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great InfographicsSlideShare
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareEmpowered Presentations
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation OptimizationOneupweb
 
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingHow To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingContent Marketing Institute
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...SlideShare
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShareSlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShareSlideShare
 

Andere mochten auch (12)

How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShare
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great Infographics
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
 
You Suck At PowerPoint!
You Suck At PowerPoint!You Suck At PowerPoint!
You Suck At PowerPoint!
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization
 
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingHow To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare
 
Plant nanny-catalog-2016
Plant nanny-catalog-2016Plant nanny-catalog-2016
Plant nanny-catalog-2016
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShare
 

Ähnlich wie Wp hoi-thao-phan-quyen

Tutoria mvc framework
Tutoria mvc frameworkTutoria mvc framework
Tutoria mvc frameworkXuan Le
 
Bài 7 - Xây dựng layout cho trang web.docx
Bài 7 - Xây dựng layout cho trang web.docxBài 7 - Xây dựng layout cho trang web.docx
Bài 7 - Xây dựng layout cho trang web.docxTrongNguyn1
 
Khái niệm OOP, Các tính chất của OOP, Class & Object
Khái niệm OOP, Các tính chất của OOP, Class & ObjectKhái niệm OOP, Các tính chất của OOP, Class & Object
Khái niệm OOP, Các tính chất của OOP, Class & ObjectCodeGym Đà Nẵng
 
Thêm sửa-xóa-combobox - c#
Thêm sửa-xóa-combobox - c#Thêm sửa-xóa-combobox - c#
Thêm sửa-xóa-combobox - c#Văn Dũng
 
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợpSức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợpTuyet Tam
 
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Minh Tri Lam
 
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRM
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRMTÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRM
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRMdvms
 
Co ban ve_zend_framework 1
Co ban ve_zend_framework 1Co ban ve_zend_framework 1
Co ban ve_zend_framework 1Ông Thông
 

Ähnlich wie Wp hoi-thao-phan-quyen (10)

Tutoria mvc framework
Tutoria mvc frameworkTutoria mvc framework
Tutoria mvc framework
 
Bài 7 - Xây dựng layout cho trang web.docx
Bài 7 - Xây dựng layout cho trang web.docxBài 7 - Xây dựng layout cho trang web.docx
Bài 7 - Xây dựng layout cho trang web.docx
 
Yii
YiiYii
Yii
 
Khái niệm OOP, Các tính chất của OOP, Class & Object
Khái niệm OOP, Các tính chất của OOP, Class & ObjectKhái niệm OOP, Các tính chất của OOP, Class & Object
Khái niệm OOP, Các tính chất của OOP, Class & Object
 
Thêm sửa-xóa-combobox - c#
Thêm sửa-xóa-combobox - c#Thêm sửa-xóa-combobox - c#
Thêm sửa-xóa-combobox - c#
 
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợpSức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
Sức mạnh của jsf 2, phần 2 tạo khuôn mẫu và các thành phần phức hợp
 
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)Hướng dẫn lập trình với SCSF phần I (smart client software factory)
Hướng dẫn lập trình với SCSF phần I (smart client software factory)
 
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRM
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRMTÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRM
TÀI LIỆU HƯỚNG DẪN VIẾT MODULE CHO SUGARCRM
 
Co ban ve_zend_framework 1
Co ban ve_zend_framework 1Co ban ve_zend_framework 1
Co ban ve_zend_framework 1
 
Giới thiệu Yii Framework 1
Giới thiệu Yii Framework 1Giới thiệu Yii Framework 1
Giới thiệu Yii Framework 1
 

Mehr von KhanhPham

Giáo trình thiết kế web - Thiết kế web với Dreamweaver
Giáo trình thiết kế web - Thiết kế web với DreamweaverGiáo trình thiết kế web - Thiết kế web với Dreamweaver
Giáo trình thiết kế web - Thiết kế web với DreamweaverKhanhPham
 
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâuTự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâuKhanhPham
 
Học Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkHọc Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkKhanhPham
 
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)KhanhPham
 
Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)
Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)
Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)KhanhPham
 
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)KhanhPham
 
Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)
Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)
Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)KhanhPham
 
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)KhanhPham
 
Lap trình web PHP - Các hàm xử lý số number trong PHP (CH002 Bài 3)
Lap trình web PHP - Các hàm xử lý số number trong PHP  (CH002 Bài 3)Lap trình web PHP - Các hàm xử lý số number trong PHP  (CH002 Bài 3)
Lap trình web PHP - Các hàm xử lý số number trong PHP (CH002 Bài 3)KhanhPham
 
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)KhanhPham
 
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)KhanhPham
 
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)KhanhPham
 

Mehr von KhanhPham (12)

Giáo trình thiết kế web - Thiết kế web với Dreamweaver
Giáo trình thiết kế web - Thiết kế web với DreamweaverGiáo trình thiết kế web - Thiết kế web với Dreamweaver
Giáo trình thiết kế web - Thiết kế web với Dreamweaver
 
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâuTự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
Tự học HTML CSS JS - Khóa học HTML CSS JS chuyên sâu
 
Học Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend FrameworkHọc Zend Framework - Khóa học lập trình Zend Framework
Học Zend Framework - Khóa học lập trình Zend Framework
 
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)
Tai lieu PHP nang cao - Sử dụng Session và Cookie trong php (CH003 Bài 7)
 
Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)
Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)
Giáo trình PHP căn bản - Lọc dữ liệu với PHP Filter (CH003 Bài 5)
 
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)
Giao trinh PHP nang cao - Kỹ thuật đệ qui trong PHP (CH003 Bài 3)
 
Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)
Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)
Giao trinh PHP nang cao - Các hàm xử lý file trong PHP (CH003 Bài 2)
 
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)
Giáo trình PHP nâng cao - Biểu thức chính qui trong PHP Regex (CH003 Bài 1)
 
Lap trình web PHP - Các hàm xử lý số number trong PHP (CH002 Bài 3)
Lap trình web PHP - Các hàm xử lý số number trong PHP  (CH002 Bài 3)Lap trình web PHP - Các hàm xử lý số number trong PHP  (CH002 Bài 3)
Lap trình web PHP - Các hàm xử lý số number trong PHP (CH002 Bài 3)
 
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
Học PHP online - Các hàm xử lý chuỗi trong PHP ( CH002 - Bài 2.1)
 
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
Học PHP cơ bản - Mảng trong PHP ( CH002 - Bài 1.2)
 
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
Học PHP cơ bản - Tìm hiểu về mảng trong PHP ( CH001 - Bài 1.1)
 

Wp hoi-thao-phan-quyen

  • 1. Phân quyền và phân quyền mở rộng trong Worpdress ww.zend.vn
  • 2. Tự giới thiệu  Họ tên: Phạm Vũ Khánh  Năm sinh: 1978  Kinh nghiệm: Nghiên cứu và làm việc trong lĩnh vực thiết kế và lập trình Website từ 1999  Các vị trí đã từng đảm nhận: Developer, Designer, Leader, BA, R&D manager, PM, IT manager…  Công việc hiện tại: CEO & Founder of ZendVN  Điện thoại: 090 889 33 26  Email: vukhanh2212@gmail.com ww.zend.vn
  • 3. Nội dung trình bày A. Giới thiệu Roles ( ~ Nhóm người dùng) B. Giới thiệu Capabilities (~ Quyền hạn) C. Roles & Capabilities D. Tạo Custom roles E. Tạo Custom capabilities F. Kết hợp Custom roles & Custom capabilities G. Demo: phân quyền cho Article plugin ww.zend.vn
  • 5. A. Giới thiệu Roles 1. Super Admin 2. Administrator 3. Editor 4. Author 5. Contributor 6. Subscriber https://codex.wordpress.org/Roles_and_Capabilities ww.zend.vn
  • 6. A. Giới thiệu Roles 1. Super Admin: somebody with access to the site network administration features and all other features. See the Create a Network article. 2. Administrator: somebody who has access to all the administration features within a single site. 3. Editor (Biên tập viên): somebody who can publish and manage posts including the posts of other users. ww.zend.vn
  • 7. A. Giới thiệu Roles 4. Author (tác giả): somebody who can publish and manage their own posts. 5. Contributor (cộng tác viên): somebody who can write and manage their own posts but cannot publish them. 6. Subscriber (Người đọc): somebody who can only manage their profile. ww.zend.vn
  • 9. B. Giới thiệu Capabilities 1. Super Admin: manage_network manage_sites manage_network_users manage_network_plugins manage_network_themes manage_network_options ww.zend.vn
  • 10. B. Giới thiệu Capabilities Để thấy rõ quyền của các nhóm chúng ta có 2 cách: - https://codex.wordpress.org/Roles_and_Capabilities - Sử dụng WPFront User Role Editor plugin ww.zend.vn
  • 11. A. Giới thiệu Capabilities ww.zend.vn
  • 13. C. Roles & Capabilities - Mỗi Role (nhóm) trong WP sẽ được thiết lập một số quyền (Capability) nhất định - Để thay đổi quyền hạn của một nhóm nào đó chúng ta có 2 cách - Dùng một số plugin hỗ trợ phân quyền - Viết mã bổ xung trong Custom plugin của chúng ta ww.zend.vn
  • 14. C. Roles & Capabilities Những thao tác cơ bản trên WPFront User Role Editor  All Roles  Add New (Role)  Restore  Add/Remove Cap  Settings ww.zend.vn
  • 15. C.1. Thông tin của User  Lấy thông tin user hiện thời global $current_user; $user = $current_user;// Cách 1 $user = wp_get_current_user(); // Cách 2  Lấy thông tin của một user bất kỳ $user = new WP_User(3); print_r($user); ww.zend.vn
  • 16. C.1. Thông tin của User  Cấu trúc đối tượng WP_User WP_User ( [data] [ID] [caps] [cap_key] [roles [allcaps] [filter] ) ww.zend.vn
  • 17. C.2. Thay đổi Role của User  Thêm Role cho user $user = new WP_User(3); //ID=3 – Editor $user->add_role( 'subscriber' );  Loại Role của user $user = new WP_User(3); $user->remove_role('editor'); ww.zend.vn
  • 18. C.2. Thay đổi Role của User  Thiết lập lại Role cho user $user = new WP_User(3); $user->set_role('editor');
  • 19. C.3. Thay đổi quyền hạn cho User  Thêm Cap cho user $user = new WP_User(3); $user->add_cap('activate_plugins',true);  Xóa Cap của user $user = new WP_User(3); $user->remove_cap('activate_plugins');
  • 20. C.3. Thay đổi quyền hạn cho User  Xóa toàn bộ Cap cho user $user = new WP_User(3); $user->remove_all_caps();  Kiểm tra quyền (Cap) của user $user = new WP_User(3); if(!$user->has_cap('edit_users')){ echo '<br/>' . 'User này không có edit user'; } ww.zend.vn
  • 21. C.4. Caps của nhóm (roles)  Lấy thông tin của một nhóm $role = get_role( 'editor' ); print_r($role); ww.zend.vn
  • 22. C.4. Caps của nhóm (roles)  Lấy thông tin của một nhóm WP_Role Object ( [name] => editor [capabilities] => Array ( [moderate_comments] => 1 [manage_categories] => 1 ... ) ) ww.zend.vn
  • 23. C.4. Caps của nhóm (roles)  Thêm quyền cho nhóm $role = get_role( 'editor' ); $role->add_cap('switch_themes'); $role->add_cap('manage_options');  Xóa quyền của nhóm $role = get_role( 'editor' ); $role->remove_cap('switch_themes'); $role->remove_cap('manage_options'); ww.zend.vn
  • 25. D. Tạo Custom Roles  Thêm một nhóm mới add_role( 'zendvn_student', 'Student of ZendVN', array());  Thêm một nhóm mới và sao chép quyền $role = get_role( 'author' ); $caps = $role->capabilities; add_role( 'zendvn_student', 'Student of ZendVN', $caps ); ww.zend.vn
  • 27. E. Tạo Custom Capabilities  Thêm Caps cho nhóm có sẵn trong WP $caps = array( 'zendvn_mp_articles', 'zendvn_mp_article_list', 'zendvn_mp_article_add', 'zendvn_mp_article_edit', 'zendvn_mp_article_delete', 'zendvn_mp_article_status' ); $role = get_role('administrator'); foreach ($caps as $val){ $role->add_cap($val); } ww.zend.vn
  • 29. F. Custom roles & Custom capabilities  Thêm Role mới và Caps cho nhóm $caps = array( 'zendvn_mp_articles', 'zendvn_mp_article_list', 'zendvn_mp_article_add', 'zendvn_mp_article_edit', 'zendvn_mp_article_delete', 'zendvn_mp_article_status' ); add_role( 'zendvn_student', 'Student of ZendVN', array()); ww.zend.vn