Я уверен, что в интернете есть куча всего этого, но вот мое мнение:)
То, как я бы решил ваш конкретный пример, - это ведение списка ограниченных сценариев в базе данных (черный список), если вы не являетесь членом определенной группы (то есть вы являетесь администратором).
Вы можете сделать это настолько сложным, насколько пожелаете, но для простого начала вы можете сравнить полное имя скрипта (CGI.SCRIPT_NAME
) с запросом запросов, представляющих черные списки страниц, которые вы храните в области действия APPLICATION
, которую вы загрузили в onApplicationStart()
называется qRestrictedList
.
Итак, в onRequestStart
вы можете сделать следующее:
<cfquery name="qThisPageRestricted" dbtype="query">
SELECT * FROM qRestrictedList
WHERE ScriptName = '#CGI.SCRIPT_NAME#'
</cfquery>
<cfif qThisPageRestricted.recordCount and not SESSION.isAdmin>
<cfinclude template="/notauth.cfm">
<cfreturn false />
</cfif>
Еще лучше , вы можете расширить это позже, обернув все это в CFC «аутентификации» и создав группы пользователей и уровни, т.е. переместите свою логику из onRequestStart()
и инкапсулируйте ее ,
Но для начала хранение данных в базе данных может быть более удобным способом для вас, чтобы сделать это и обеспечить лучшую основу для будущих изменений в том, как работает ваша аутентификация.
Надеюсь, это поможет.