Jquery를 사용하여 사용자가 관리자인지 감지하고 사용자가 링크를 클릭하도록 허용하는 방법이 있는지 궁금합니다. admin 사용자의 경우 해당 링크에서 e.preventDeafult()이 활성화되어 있습니다.Drupal jquery 조건부 사용자 작업
그게 가능합니까?
Jquery를 사용하여 사용자가 관리자인지 감지하고 사용자가 링크를 클릭하도록 허용하는 방법이 있는지 궁금합니다. admin 사용자의 경우 해당 링크에서 e.preventDeafult()이 활성화되어 있습니다.Drupal jquery 조건부 사용자 작업
그게 가능합니까?
JS가 브라우저에서 실행되기 때문에 JS 코드를 항상 수정할 수있는 완벽한 방법은 없습니다. 그러나 여기에는 두 가지 해결책이 있습니다. 첫 번째 파일은 두 번째 파일보다 완전한 증거는 아니지만 훨씬 더 간단합니다. &은 더 나은 사용자 환경을 제공합니다.
링크를 실제로 AJAX 요청을하십시오. 이렇게하면 요청이 이루어진 URL의 PHP가 결정을 내릴 수 있습니다. 이는, 1) DOM 값 (true 또는 false), 2) 스크립트 자체의 코드 (경우에 당신은 몰랐 :
# 1은 해킹이 개 장소를 제공하기 때문에 해킹하기가 쉽습니다 사용자가 바로 수정할 수 있습니다).
# 2는 두 번째 시나리오 만 제공합니다.
하지만 분명히 더 복잡합니다. 둘 다 해킹 가능하고 사용자는 신뢰할 수있는 사람이므로 (관리자이기 때문에) # 1로 가려고합니다.
저는 실제로이 Drupal 사이트에서 이런 종류의 일을합니다. 결코 보안 문제를 일으킬 수있는 곳에서는 절대 안됩니다 (즉, AJAX 요청을하는 경우 JS가 서버에 uid로 로그인 한 권한을 보내지 않고 대신 PHP에서 global $ user를 사용합니다) 요청을 처리하는 코드).
AJAX를 사용할 수 있지만 사용자가 자바 스크립트를 사용할 수없는 경우에도 링크 대상으로 이동합니다.
또 다른 접근법은 사용자가 관리자가 아닌 경우 단순히 링크 표시를 억제하는 것입니다.
두 경우 모두 서버 측에서만 사용자의 유효성을 검사하십시오. 악의적 인 사용자에 의해 손상 될 수 있으므로 자바 스크립트 유효성 검사에 의존하지 마십시오.
관리자에게 디버깅 메시지 만 표시하는 방법을 찾는 동안이 사실을 발견했습니다. 내가 만든 모든 사이트는 admin 메뉴 모듈을 사용하므로 $ ('body.admin-menu div # admin-menu')가 정의되어 있는지 확인합니다.
사용자를 중요한 페이지로 보내지 않거나 실제로 중요한 메시지를 표시하지 않기 때문에 제대로 작동하고 관리자 메뉴 모듈에서 추가하지 않은 요소를 추가 할 필요가 없습니다.
의견을 보내 주셔서 감사합니다. MEsch 및 maxedison. maxedisons 첫 번째 제안은 구현 한 것입니다. 대신 숨겨진 div를 사용하는 대신 본문에 '로그인 한'클래스가 있는지 확인했습니다. 그런 다음 기본값을 허용하거나 허용하지 않습니다. – sisko