<?php
/**
 * Vai trò & quyền hạn — tài khoản "SEO Dashboard User" riêng, chỉ vào được
 * SEO Console (không truy cập toàn bộ wp-admin/Users/Plugins/Settings gốc).
 * Được require từ seo-console.php trước users.php.
 */
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

define( 'TTSEO_ROLE', 'ttseo_seo_user' );
define( 'TTSEO_CAP', 'ttseo_access' );

/**
 * Có quyền vào SEO Console không (dashboard/KPI/bài viết/từ khóa/CRM/báo cáo).
 * Administrator luôn có quyền (an toàn dự phòng nếu cap chưa kịp gán qua activation hook).
 * Trang "Cài đặt kết nối" (API keys) và "Người dùng & Phân quyền" (tạo tài khoản) vẫn
 * luôn yêu cầu riêng current_user_can( 'manage_options' ) — không dùng hàm này.
 */
function ttseo_access() {
	return current_user_can( TTSEO_CAP ) || current_user_can( 'manage_options' );
}

/** Tạo vai trò + gán capability cho Administrator — chạy khi kích hoạt plugin. */
function ttseo_roles_install() {
	if ( ! get_role( TTSEO_ROLE ) ) {
		add_role(
			TTSEO_ROLE,
			ttseo_t( 'Người dùng SEO Dashboard', 'SEO Dashboard User' ),
			array(
				'read'      => true,
				TTSEO_CAP   => true,
			)
		);
	} else {
		$role = get_role( TTSEO_ROLE );
		$role->add_cap( TTSEO_CAP );
	}
	$admin = get_role( 'administrator' );
	if ( $admin && ! $admin->has_cap( TTSEO_CAP ) ) {
		$admin->add_cap( TTSEO_CAP );
	}
}

/** Cho phép Administrator giữ nguyên nhãn dịch — WP dùng key gốc để tra get_names(). */
add_filter( 'ttseo_role_label_' . TTSEO_ROLE, function () {
	return ttseo_t( 'Người dùng SEO Dashboard', 'SEO Dashboard User' );
} );
