From 09722088729749be474965ae983a618f4355e7be Mon Sep 17 00:00:00 2001 From: lmarthins0 Date: Fri, 14 Aug 2026 15:15:44 -0300 Subject: [PATCH 1/3] =?UTF-8?q?mudan=C3=A7as=20en.example?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Models/User.php | 2 + composer.json | 2 +- composer.lock | 2 +- config/permission.php | 202 ++++++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 12 +++ 5 files changed, 218 insertions(+), 2 deletions(-) create mode 100644 config/permission.php diff --git a/app/Models/User.php b/app/Models/User.php index 74dca180..71720780 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -13,6 +13,8 @@ class User extends Authenticatable use HasFactory, Notifiable; use \Uspdev\SenhaunicaSocialite\Traits\HasSenhaunica; + protected $guard_name = 'senhaunica'; + # desativado por enquanto por conta de conflito #use \Spatie\Permission\Traits\HasRoles; diff --git a/composer.json b/composer.json index c16f0255..9902f339 100644 --- a/composer.json +++ b/composer.json @@ -22,7 +22,7 @@ "uspdev/laravel-tools": "^1.3", "uspdev/laravel-usp-theme": "^2.8", "uspdev/laravel-usp-validators": "^1.0", - "uspdev/senhaunica-socialite": "^4.3", + "uspdev/senhaunica-socialite": "^4.5", "uspdev/wsfoto": "^2.0" }, "require-dev": { diff --git a/composer.lock b/composer.lock index bcbcbcf8..1966b9e9 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "88ff028a715ef223af5ba078b7b289e6", + "content-hash": "02b9d7ea8d13170b3eebc548f24f169a", "packages": [ { "name": "brick/math", diff --git a/config/permission.php b/config/permission.php new file mode 100644 index 00000000..f39f6b5b --- /dev/null +++ b/config/permission.php @@ -0,0 +1,202 @@ + [ + + /* + * When using the "HasPermissions" trait from this package, we need to know which + * Eloquent model should be used to retrieve your permissions. Of course, it + * is often just the "Permission" model but you may use whatever you like. + * + * The model you want to use as a Permission model needs to implement the + * `Spatie\Permission\Contracts\Permission` contract. + */ + + 'permission' => Spatie\Permission\Models\Permission::class, + + /* + * When using the "HasRoles" trait from this package, we need to know which + * Eloquent model should be used to retrieve your roles. Of course, it + * is often just the "Role" model but you may use whatever you like. + * + * The model you want to use as a Role model needs to implement the + * `Spatie\Permission\Contracts\Role` contract. + */ + + 'role' => Spatie\Permission\Models\Role::class, + + ], + + 'table_names' => [ + + /* + * When using the "HasRoles" trait from this package, we need to know which + * table should be used to retrieve your roles. We have chosen a basic + * default value but you may easily change it to any table you like. + */ + + 'roles' => 'roles', + + /* + * When using the "HasPermissions" trait from this package, we need to know which + * table should be used to retrieve your permissions. We have chosen a basic + * default value but you may easily change it to any table you like. + */ + + 'permissions' => 'permissions', + + /* + * When using the "HasPermissions" trait from this package, we need to know which + * table should be used to retrieve your models permissions. We have chosen a + * basic default value but you may easily change it to any table you like. + */ + + 'model_has_permissions' => 'model_has_permissions', + + /* + * When using the "HasRoles" trait from this package, we need to know which + * table should be used to retrieve your models roles. We have chosen a + * basic default value but you may easily change it to any table you like. + */ + + 'model_has_roles' => 'model_has_roles', + + /* + * When using the "HasRoles" trait from this package, we need to know which + * table should be used to retrieve your roles permissions. We have chosen a + * basic default value but you may easily change it to any table you like. + */ + + 'role_has_permissions' => 'role_has_permissions', + ], + + 'column_names' => [ + /* + * Change this if you want to name the related pivots other than defaults + */ + 'role_pivot_key' => null, // default 'role_id', + 'permission_pivot_key' => null, // default 'permission_id', + + /* + * Change this if you want to name the related model primary key other than + * `model_id`. + * + * For example, this would be nice if your primary keys are all UUIDs. In + * that case, name this `model_uuid`. + */ + + 'model_morph_key' => 'model_id', + + /* + * Change this if you want to use the teams feature and your related model's + * foreign key is other than `team_id`. + */ + + 'team_foreign_key' => 'team_id', + ], + + /* + * When set to true, the method for checking permissions will be registered on the gate. + * Set this to false if you want to implement custom logic for checking permissions. + */ + + 'register_permission_check_method' => true, + + /* + * When set to true, Laravel\Octane\Events\OperationTerminated event listener will be registered + * this will refresh permissions on every TickTerminated, TaskTerminated and RequestTerminated + * NOTE: This should not be needed in most cases, but an Octane/Vapor combination benefited from it. + */ + 'register_octane_reset_listener' => false, + + /* + * Events will fire when a role or permission is assigned/unassigned: + * \Spatie\Permission\Events\RoleAttached + * \Spatie\Permission\Events\RoleDetached + * \Spatie\Permission\Events\PermissionAttached + * \Spatie\Permission\Events\PermissionDetached + * + * To enable, set to true, and then create listeners to watch these events. + */ + 'events_enabled' => false, + + /* + * Teams Feature. + * When set to true the package implements teams using the 'team_foreign_key'. + * If you want the migrations to register the 'team_foreign_key', you must + * set this to true before doing the migration. + * If you already did the migration then you must make a new migration to also + * add 'team_foreign_key' to 'roles', 'model_has_roles', and 'model_has_permissions' + * (view the latest version of this package's migration file) + */ + + 'teams' => false, + + /* + * The class to use to resolve the permissions team id + */ + 'team_resolver' => \Spatie\Permission\DefaultTeamResolver::class, + + /* + * Passport Client Credentials Grant + * When set to true the package will use Passports Client to check permissions + */ + + 'use_passport_client_credentials' => false, + + /* + * When set to true, the required permission names are added to exception messages. + * This could be considered an information leak in some contexts, so the default + * setting is false here for optimum safety. + */ + + 'display_permission_in_exception' => false, + + /* + * When set to true, the required role names are added to exception messages. + * This could be considered an information leak in some contexts, so the default + * setting is false here for optimum safety. + */ + + 'display_role_in_exception' => false, + + /* + * By default wildcard permission lookups are disabled. + * See documentation to understand supported syntax. + */ + + 'enable_wildcard_permission' => false, + + /* + * The class to use for interpreting wildcard permissions. + * If you need to modify delimiters, override the class and specify its name here. + */ + // 'wildcard_permission' => Spatie\Permission\WildcardPermission::class, + + /* Cache-specific settings */ + + 'cache' => [ + + /* + * By default all permissions are cached for 24 hours to speed up performance. + * When permissions or roles are updated the cache is flushed automatically. + */ + + 'expiration_time' => \DateInterval::createFromDateString('24 hours'), + + /* + * The cache key used to store all permissions. + */ + + 'key' => 'spatie.permission.cache', + + /* + * You may optionally indicate a specific cache driver to use for permission and + * role caching using any of the `store` drivers listed in the cache.php config + * file. Using 'default' here means to use the `default` set in cache.php. + */ + + 'store' => 'default', + ], +]; diff --git a/docker-compose.yml b/docker-compose.yml index 38091697..7af333db 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -37,6 +37,18 @@ services: - chamados-network shm_size: 2gb + senhaunica-faker: + image: uspdev/senhaunica-faker + container_name: chamados_senhaunica-faker + ports: + - "3141:3141" + environment: + - APP_URL=http://auth.local:3141 + networks: + chamados-network: + aliases: + - auth.local + networks: chamados-network: From 645f64c68be927aa36ed651f78c769fd7522a5c7 Mon Sep 17 00:00:00 2001 From: lmarthins0 Date: Fri, 14 Aug 2026 15:29:11 -0300 Subject: [PATCH 2/3] ajustando .env.example --- .env.example | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.env.example b/.env.example index 99c709b2..784316a7 100644 --- a/.env.example +++ b/.env.example @@ -4,7 +4,7 @@ APP_NAME="Chamados" APP_KEY= APP_ENV=local # valores possíveis: local ou production APP_DEBUG=true -APP_URL=http://127.0.0.1:8000 +APP_URL=chamados # ######################################## # ### Variáveis da aplicação ############# @@ -68,7 +68,7 @@ MAIL_FROM_NAME="Laravel" #USP_THEME_SISTEMAS_2='{"text":"LDAP","url":"http://localhost/ldap"}' # Escolha o skin a ser utilizado (default=uspdev) -USP_THEME_SKIN=fflch # ou uspdev +USP_THEME_SKIN=uspdev # ou uspdev # SENHAUNICA-SOCIALITE ###################################### # https://github.com/uspdev/senhaunica-socialite @@ -77,7 +77,7 @@ USP_THEME_SKIN=fflch # ou uspdev SENHAUNICA_KEY=faker SENHAUNICA_SECRET=faker SENHAUNICA_CALLBACK_ID=1 -SENHAUNICA_ADMINS=111111 +SENHAUNICA_ADMINS=10011 SENHAUNICA_DEV="http://auth.local:3141/wsusuario/oauth" # URL do servidor oauth no ambiente de dev (default=no) @@ -118,6 +118,8 @@ REPLICADO_DATABASE= REPLICADO_USERNAME= REPLICADO_PASSWORD= REPLICADO_FAKE=1 + + # Código da unidade REPLICADO_CODUNDCLG= # Todos os códigos de colegiados da unidade, separados por vírgula @@ -215,7 +217,6 @@ WSFOTO_PASS= # como a foto fake WS_FOTO_FAKE_PATH= -APP_URL=http://chamados DUSK_DRIVER_URL='http://selenium:4444/wd/hub' DUSK_START_MAXIMIZED=true DUSK_HEADLESS_DISABLED=true From 439bb84c95d33bc4bbd5d11ca511f639bbf7178f Mon Sep 17 00:00:00 2001 From: lmarthins0 Date: Fri, 14 Aug 2026 15:36:36 -0300 Subject: [PATCH 3/3] ajustes env example --- .env.example | 2 +- tests/Browser/IndexTest.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.env.example b/.env.example index 784316a7..77d798d8 100644 --- a/.env.example +++ b/.env.example @@ -4,7 +4,7 @@ APP_NAME="Chamados" APP_KEY= APP_ENV=local # valores possíveis: local ou production APP_DEBUG=true -APP_URL=chamados +APP_URL=http://chamados # ######################################## # ### Variáveis da aplicação ############# diff --git a/tests/Browser/IndexTest.php b/tests/Browser/IndexTest.php index 32189c12..75f3d3f9 100644 --- a/tests/Browser/IndexTest.php +++ b/tests/Browser/IndexTest.php @@ -11,7 +11,7 @@ class IndexTest extends DuskTestCase /** * A Dusk test example. */ - public function test_example(): void + public function test_index(): void { $this->browse(function (Browser $browser) { $browser->visit('/')