package com.iailab.framework.security.core.service;

/**
 * Security 罅��� Service �ュ��絎�箙������後�括���♂���篏�
 *
 * @author iailab
 */
public interface SecurityFrameworkService {

    /**
     * �ゆ�㊥����������
     *
     * @param permission ����
     * @return ����
     */
    boolean hasPermission(String permission);

    /**
     * �ゆ�㊥����������鐚�篁私�筝�筝��喝�
     *
     * @param permissions ����
     * @return ����
     */
    boolean hasAnyPermissions(String... permissions);

    /**
     * �ゆ�㊥������茹���
     *
     * 羈����茹��俄戎������ SysRoleDO �� code ��莚�
     *
     * @param role 茹���
     * @return ����
     */
    boolean hasRole(String role);

    /**
     * �ゆ�㊥������茹��駕�篁私�筝�筝��喝�
     *
     * @param roles 頵��我�亥�
     * @return ����
     */
    boolean hasAnyRoles(String... roles);

    /**
     * �ゆ�㊥����������
     *
     * @param scope ����
     * @return ����
     */
    boolean hasScope(String scope);

    /**
     * �ゆ�㊥�������������器�篁私�筝�筝��喝�
     *
     * @param scope �������吚�亥�
     * @return ����
     */
    boolean hasAnyScopes(String... scope);
}