T Toutadmin문서

누가 무엇을 보는가

Toutadmin에는 하나하나 체크할 권한 표가 없습니다. 두 가지 역할, 네 가지 횡단 권한, 조직에서 유도되는 관리 관계, 그리고 한 가지 단순한 규칙이 있을 뿐입니다. 공간은 데이터를 한 줄도 읽기 전에 입장을 거절합니다. 이 문서는 코드에 적힌 그대로 모든 규칙을 늘어놓습니다.

원칙#

검사는 화면 여기저기에 흩어져 있지 않습니다. 한곳에 모여 있습니다. Node 쪽은 src/middleware/, PHP 쪽은 App\Core\Kernel이며, 모든 요청이 경로를 정하기 전에 그곳을 지납니다. 그래서 접근 정책 전체를 단숨에 읽을 수 있고, 새 문서가 빠질 수도 없습니다.

접근이 거절될 때 제품은 이유를 말하지 않습니다. 무덤덤한 문구와 함께 원래 공간으로 돌려보낼 뿐입니다. 수다스러운 오류는 그 화면이 존재한다는 것과 어떤 권한이 필요한지를 캐묻는 이에게 알려 주고 맙니다.

두 가지 역할#

역할무엇인가
admin 관리자. 계정을 만들고, 권한을 주고, 모듈을 켜고, 메일 주소와 메일 서버 설정에 손대고, 주소록에서 감추는 일을 다루고, 감사 기록을 읽고, 백업을 되돌리는 유일한 쪽입니다.
employee 구성원. 자기 공간, 주소록, 일정, 읽기 전용 근무표, 신청, 공용 금고, 지식 창고, 요청 형태의 재고. 그 밖의 모든 것은 권한이나 관리 직책에 달려 있습니다.
구성원은 관리자만 추가합니다

공개 가입도, 누구나 쓰는 초대 링크도, 인증 제공자를 통한 자동 생성도 없습니다. 계정은 로그인한 관리자의 손에서 생기고, 그 행위는 기록에 남습니다. 이것은 설계상의 결정이지 설정이 아닙니다. 켤 방법이 없습니다.

관리자도 보지 못하는 것#

일부러 둔 세 가지 예외, 관리자라는 것만으로는 모자란 자리입니다.

  • 내부 제보. 제보가 관리자를 겨눌 수도 있습니다. 제보는 지정된 담당자만 읽습니다. 관리자는 그 담당자를 지정할 뿐 거기서는 아무것도 읽지 않습니다.
  • 접근 코드로 연 금고 칸. 코드로 연 접속은 뒤에 어떤 계정이 있든 결코 관리 접속이 아닙니다.
  • 직원을 위한 공간. /mon-espace/agenda는 관리자를 제 대시보드로 돌려보냅니다. 관리 계정에는 휴가 잔여도, 상급자도, 급여 명세도 없습니다.

네 가지 횡단 권한#

관리 → 권한에서 하나씩, 이름을 지목해 줍니다. 각 묶음은 누르기 전에 미치는 범위를 보여 줍니다. 권한은 무엇이 열리는지 알고서 주는 것입니다.

권한무엇이 열리는가미치는 범위
is_hr
인사
/rh, /parcours, /sante-securite, /accueil, 금고 관리 프리랜서를 뺀 전 직원의 신청, 휴가 잔여, 급여 명세.
is_finance
재무
/gestion, /partenaires, /flotte, /pieces, /import, 그리고 재고의 제한된 쪽 거래처, 계약, 청구서, 예산, 경비 정산, 비품, 회의실.
is_it
정보기술
/informatique, /developpement 소프트웨어 자산, 업무 시스템 접근 권한, 정보 시스템 장애.
is_referent
내부 제보 창구
/alertes/signalements/… 제보 접수. 직원 쉰 명부터 의무입니다.

권한은 더해집니다. 공간을 열 뿐 어느 것도 닫지 않습니다. 한 사람이 여럿을 가질 수 있습니다. 관리자는 암묵적으로 전부를 가집니다 — 위의 세 예외만 빼고.

체크하지 않는 관리 관계#

'관리자' 체크 칸은 없습니다. 조직에서 어느 부서의 책임자로 지정되었기에 관리하는 것입니다. /mon-equipe 공간은 적어도 한 영역을 맡은 사람에게 열리고, 거기 나오는 사람 명단은 바로 그 영역의 사람들뿐입니다 — 한 명도 더 없습니다.

책임자는 오직 자기 영역에 한해 다음을 얻습니다.

  • 제 팀의 부재와 신청 승인
  • 일대일 면담
  • 근무표 쓰기 권한
  • /qualite 공간
  • 지식 창고에 쓰기

경영 지표#

/pilotage는 회사 전체를 봅니다. 관리자, 재무, 인사에게 열립니다. 접근 조건이 두 권한 중 하나가 아니라 둘의 합집합인 유일한 화면입니다.

읽기는 열려 있고 쓰기는 닫혀 있다#

네 공간은 공간이 아니라 HTTP 동사로 가릅니다. 보는 것은 열려 있고 손대는 것은 아닙니다. 감춘 화면과는 정반대입니다 — 아무도 읽을 수 없는 근무표는 누구에게도 쓸모가 없습니다.

공간읽기쓰기
/planning모두책임자, 인사, 관리자
/base-de-connaissances모두, 글의 공개 범위 안에서책임자, 인사, 관리자
/evenements모두인사와 관리자 — 다만 제 자리를 신청하고 취소하는 일은 누구에게나 열려 있습니다
/stock각자 필요한 것을 청구합니다품목, 입출고, 발주, 청구서: 재무

관리자 전용, 위임 불가#

공간
/admin계정, 조직, 권한, 모듈, 외관.
/securite감사 기록, 세션, 비밀번호 규칙.
/sauvegardes복원은 데이터베이스 전체를 덮어씁니다.
/rgpd개인정보 내보내기와 지우기.
/integrationsAPI 토큰과 웹훅: 회사 데이터로 통하는 문을 여는 일.
/direction합쳐 본 경영진 화면.
/juridique주주, 임원, 총회.
/demandes/types신청 유형을 정하는 것은 결재 경로를 쓰는 일입니다.

자물쇠가 둘인 공간#

일곱 공간은 선택 모듈에 속합니다. 가지 조건이 필요합니다. 모듈이 켜져 있을 것, 그리고 권한이 있을 것. 모듈이 꺼져 있으면 페이지는 '접근 거부'가 아니라 404를 돌려줍니다. 꺼진 모듈은 존재하지 않으며, 거기서 유추할 것도 없습니다.

공간모듈추가로 필요한 권한
/comptabilite회계재무
/paie급여 엔진인사
/facturation-electronique전자 청구재무
/stock재고와 구매읽기는 열림, 쓰기는 재무
/tresorerie자금 관리재무
/immobilisations고정자산재무
/crm영업 CRM재무

노사협의회#

/cse 공간은 모든 직원에게 열립니다. /cse/gestion은 선출된 사람에게만 열립니다. 관리자인지 아닌지는 여기서 아무 상관이 없습니다. 선출되었거나, 아니거나입니다.

결재함#

누구나 자기와 관련된 문서를 보고 서명합니다. 결재함을 만들거나 거두어들이거나 남의 것을 보는 일에는 인사 권한이나 관리자 자격이 필요합니다.

구성원이 스스로 바꿀 수 없는 것#

세 항목은 모든 판본에서 관리자만 바꿀 수 있고, 프로필에 모습조차 보이지 않습니다.

  • 메일 주소 — 로그인 아이디이기 때문입니다.
  • 계정의 IMAP과 SMTP 설정.
  • 주소록에서 감추기 — 스스로 자기를 지울 수 있는 회사 주소록은 더 이상 주소록이 아닙니다.

구성원의 손에 남는 것은 비밀번호, 사진, 소개, 전화번호, 표시 언어, 그리고 이중 인증입니다.

규칙은 짐작하지 말고 확인한다#

정책은 파일 하나에 들어 있습니다. 어떤 경로에 걸리는 규칙을 읽으려면:

# PHP 판
grep -n "/pilotage" app/Core/Kernel.php

# Node 판
grep -rn "/pilotage" src/middleware/

두 판본은 같은 규칙을 두 번 적은 형태로 지니며, 같은 시나리오로 확인합니다. 제한된 공간마다 권한 없는 계정으로 들어가려 시도하고 거절을 요구하는 테스트가 있습니다.

Toutadmin 문서 —— 2026-09-13에 생성. 소프트웨어와 분리된 독립 사이트입니다.