{
  "id": "concern-passwordvalidationrules",
  "title": "Concern — PasswordValidationRules",
  "description": "Regras compartilhadas para criação/alteração e confirmação de senha.",
  "type": "technical-reference",
  "status": "implemented",
  "visibility": "public",
  "tags": [
    "sge/concerns",
    "sge/autenticacao",
    "sge/seguranca"
  ],
  "related": [
    "fase-02-conta-e-contexto",
    "actions",
    "action-resetuserpassword"
  ],
  "sourceRefs": [
    "https://github.com/sge-suite/sge/blob/master/app/Concerns/PasswordValidationRules.php"
  ],
  "authors": [],
  "updated": null,
  "diagram": null,
  "body": "## Contrato\n\nTrait usado por Actions/fluxos que precisam validar senha. Não salva senha e não implementa recuperação; apenas retorna regras do Validator.\n\n| Método                   | Regras                                                                                                                         |\n| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------ |\n| `passwordRules()`        | `required`, `string`, `confirmed`, `Password::min(8)->max(64)->numbers()->letters()->mixedCase()->symbols()->uncompromised()`. |\n| `currentPasswordRules()` | `required`, `string`, `current_password`.                                                                                      |\n\n## Checklist\n\n- [x] Centralizar os requisitos de senha.\n- [x] Exigir confirmação e senha não comprometida.\n- [x] Usar `current_password` para senha atual.\n- [ ] Cobrir diretamente todos os requisitos em testes de autenticação.\n- [ ] Confirmar política institucional antes de alterar tamanho/requisitos.\n- [ ] Atualizar [fase de conta](doc:fase-02-conta-e-contexto) e [Actions](doc:actions) ao mudar o contrato.\n\n## Relacionamentos\n\n- [ResetUserPassword](doc:action-resetuserpassword)\n- [Conta e contexto](doc:fase-02-conta-e-contexto)",
  "sections": [
    {
      "id": "contrato",
      "level": 2,
      "title": "Contrato",
      "text": "Trait usado por Actions/fluxos que precisam validar senha. Não salva senha e não implementa recuperação; apenas retorna regras do Validator.  | Método                   | Regras                                                                                                                         | | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | | `passwordRules()`        | `required`, `string`, `confirmed`, `Password::min(8)->max(64)->numbers()->letters()->mixedCase()->symbols()->uncompromised()`. | | `currentPasswordRules()` | `required`, `string`, `current_password`.                                                                                      |",
      "line": 1
    },
    {
      "id": "checklist",
      "level": 2,
      "title": "Checklist",
      "text": "- [x] Centralizar os requisitos de senha. - [x] Exigir confirmação e senha não comprometida. - [x] Usar `current_password` para senha atual. - [ ] Cobrir diretamente todos os requisitos em testes de autenticação. - [ ] Confirmar política institucional antes de alterar tamanho/requisitos. - [ ] Atualizar [fase de conta](doc:fase-02-conta-e-contexto) e [Actions](doc:actions) ao mudar o contrato.",
      "line": 10
    },
    {
      "id": "relacionamentos",
      "level": 2,
      "title": "Relacionamentos",
      "text": "- [ResetUserPassword](doc:action-resetuserpassword) - [Conta e contexto](doc:fase-02-conta-e-contexto)",
      "line": 19
    }
  ],
  "sourcePath": "content/concern-passwordvalidationrules.md",
  "visuals": [],
  "apiVersion": 1
}
