Skip to content

Commit 0326f5d

Browse files
Settings - Decouple from shield
1 parent 97439b6 commit 0326f5d

34 files changed

+164
-126
lines changed

composer.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@
2525
"slack": "https://codeigniterchat.slack.com"
2626
},
2727
"require": {
28-
"php": "^7.4.3 || ^8.0",
29-
"codeigniter4/settings": "^2.1"
28+
"php": "^7.4.3 || ^8.0"
3029
},
3130
"require-dev": {
3231
"codeigniter/coding-standard": "1.7.*",
@@ -46,7 +45,8 @@
4645
},
4746
"suggest": {
4847
"ext-curl": "Required to use the password validation rule via PwnedValidator class.",
49-
"ext-openssl": "Required to use the JWT Authenticator."
48+
"ext-openssl": "Required to use the JWT Authenticator.",
49+
"codeigniter4/settings": "Required to store groups and permissions in database"
5050
},
5151
"minimum-stability": "dev",
5252
"prefer-stable": true,

docs/addons/jwt.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ class LoginController extends BaseController
190190
}
191191

192192
// Get the credentials for login
193-
$credentials = $this->request->getJsonVar(setting('Auth.validFields'));
193+
$credentials = $this->request->getJsonVar(shieldSetting('Auth.validFields'));
194194
$credentials = array_filter($credentials);
195195
$credentials['password'] = $this->request->getJsonVar('password');
196196

docs/customization/redirect_urls.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public function loginRedirect(): string
99
{
1010
$url = auth()->user()->inGroup('admin')
1111
? '/admin'
12-
: setting('Auth.redirects')['login'];
12+
: shieldSetting('Auth.redirects')['login'];
1313

1414
return $this->getUrl($url);
1515
}
@@ -27,7 +27,7 @@ public function loginRedirect(): string
2727
return '/admin';
2828
}
2929

30-
$url = setting('Auth.redirects')['login'];
30+
$url = shieldSetting('Auth.redirects')['login'];
3131

3232
return $this->getUrl($url);
3333
}
@@ -40,7 +40,7 @@ You can customize where a user is redirected to after registration in the `regis
4040
```php
4141
public function registerRedirect(): string
4242
{
43-
$url = setting('Auth.redirects')['register'];
43+
$url = shieldSetting('Auth.redirects')['register'];
4444

4545
return $this->getUrl($url);
4646
}
@@ -53,7 +53,7 @@ The logout redirect can also be overridden by the `logoutRedirect()` method of t
5353
```php
5454
public function logoutRedirect(): string
5555
{
56-
$url = setting('Auth.redirects')['logout'];
56+
$url = shieldSetting('Auth.redirects')['logout'];
5757

5858
return $this->getUrl($url);
5959
}

docs/guides/mobile_apps.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class LoginController extends BaseController
2727
public function mobileLogin()
2828
{
2929
// Validate credentials
30-
$rules = setting('Validation.login') ?? [
30+
$rules = shieldSetting('Validation.login') ?? [
3131
'email' => config('Auth')->emailValidationRules,
3232
'password' => [
3333
'label' => 'Auth.password',
@@ -46,7 +46,7 @@ class LoginController extends BaseController
4646
}
4747

4848
// Get the credentials for login
49-
$credentials = $this->request->getPost(setting('Auth.validFields'));
49+
$credentials = $this->request->getPost(shieldSetting('Auth.validFields'));
5050
$credentials = array_filter($credentials);
5151
$credentials['password'] = $this->request->getPost('password');
5252

src/Authentication/Actions/Email2FA.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public function show(): string
5050

5151
$this->createIdentity($user);
5252

53-
return $this->view(setting('Auth.views')['action_email_2fa'], ['user' => $user]);
53+
return $this->view(shieldSetting('Auth.views')['action_email_2fa'], ['user' => $user]);
5454
}
5555

5656
/**
@@ -89,11 +89,11 @@ public function handle(IncomingRequest $request)
8989
// Send the user an email with the code
9090
helper('email');
9191
$email = emailer(['mailType' => 'html'])
92-
->setFrom(setting('Email.fromEmail'), setting('Email.fromName') ?? '');
92+
->setFrom(shieldSetting('Email.fromEmail'), shieldSetting('Email.fromName') ?? '');
9393
$email->setTo($user->email);
9494
$email->setSubject(lang('Auth.email2FASubject'));
9595
$email->setMessage($this->view(
96-
setting('Auth.views')['action_email_2fa_email'],
96+
shieldSetting('Auth.views')['action_email_2fa_email'],
9797
['code' => $identity->secret, 'user' => $user, 'ipAddress' => $ipAddress, 'userAgent' => $userAgent, 'date' => $date],
9898
['debug' => false]
9999
));
@@ -105,7 +105,7 @@ public function handle(IncomingRequest $request)
105105
// Clear the email
106106
$email->clear();
107107

108-
return $this->view(setting('Auth.views')['action_email_2fa_verify']);
108+
return $this->view(shieldSetting('Auth.views')['action_email_2fa_verify']);
109109
}
110110

111111
/**
@@ -131,7 +131,7 @@ public function verify(IncomingRequest $request)
131131
if (! $authenticator->checkAction($identity, $postedToken)) {
132132
session()->setFlashdata('error', lang('Auth.invalid2FAToken'));
133133

134-
return $this->view(setting('Auth.views')['action_email_2fa_verify']);
134+
return $this->view(shieldSetting('Auth.views')['action_email_2fa_verify']);
135135
}
136136

137137
// Get our login redirect url

src/Authentication/Actions/EmailActivator.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,11 @@ public function show(): string
6666
// Send the email
6767
helper('email');
6868
$email = emailer(['mailType' => 'html'])
69-
->setFrom(setting('Email.fromEmail'), setting('Email.fromName') ?? '');
69+
->setFrom(shieldSetting('Email.fromEmail'), shieldSetting('Email.fromName') ?? '');
7070
$email->setTo($userEmail);
7171
$email->setSubject(lang('Auth.emailActivateSubject'));
7272
$email->setMessage($this->view(
73-
setting('Auth.views')['action_email_activate_email'],
73+
shieldSetting('Auth.views')['action_email_activate_email'],
7474
['code' => $code, 'user' => $user, 'ipAddress' => $ipAddress, 'userAgent' => $userAgent, 'date' => $date],
7575
['debug' => false]
7676
));
@@ -83,7 +83,7 @@ public function show(): string
8383
$email->clear();
8484

8585
// Display the info page
86-
return $this->view(setting('Auth.views')['action_email_activate_show'], ['user' => $user]);
86+
return $this->view(shieldSetting('Auth.views')['action_email_activate_show'], ['user' => $user]);
8787
}
8888

8989
/**
@@ -120,7 +120,7 @@ public function verify(IncomingRequest $request)
120120
if (! $authenticator->checkAction($identity, $postedToken)) {
121121
session()->setFlashdata('error', lang('Auth.invalidActivateToken'));
122122

123-
return $this->view(setting('Auth.views')['action_email_activate_show']);
123+
return $this->view(shieldSetting('Auth.views')['action_email_activate_show']);
124124
}
125125

126126
$user = $authenticator->getUser();

src/Authentication/Authenticators/Session.php

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ public function attempt(array $credentials): Result
196196
*/
197197
public function startUpAction(string $type, User $user): bool
198198
{
199-
$actionClass = setting('Auth.actions')[$type] ?? null;
199+
$actionClass = shieldSetting('Auth.actions')[$type] ?? null;
200200

201201
if ($actionClass === null) {
202202
return false;
@@ -417,7 +417,7 @@ private function checkUserState(): void
417417

418418
// No User Info in Session.
419419
// Check remember-me token.
420-
if (setting('Auth.sessionConfig')['allowRemembering']) {
420+
if (shieldSetting('Auth.sessionConfig')['allowRemembering']) {
421421
if ($this->checkRememberMe()) {
422422
$this->setAuthAction();
423423
}
@@ -473,7 +473,7 @@ private function setAuthAction(): bool
473473
return false;
474474
}
475475

476-
$authActions = setting('Auth.actions');
476+
$authActions = shieldSetting('Auth.actions');
477477

478478
foreach ($authActions as $actionClass) {
479479
if ($actionClass === null) {
@@ -516,7 +516,7 @@ private function getIdentitiesForAction(User $user): array
516516
*/
517517
private function getActionTypes(): array
518518
{
519-
$actions = setting('Auth.actions');
519+
$actions = shieldSetting('Auth.actions');
520520
$types = [];
521521

522522
foreach ($actions as $actionClass) {
@@ -611,7 +611,7 @@ private function getRememberMeToken(): ?string
611611
/** @var IncomingRequest $request */
612612
$request = service('request');
613613

614-
$cookieName = setting('Cookie.prefix') . setting('Auth.sessionConfig')['rememberCookieName'];
614+
$cookieName = shieldSetting('Cookie.prefix') . shieldSetting('Auth.sessionConfig')['rememberCookieName'];
615615

616616
return $request->getCookie($cookieName);
617617
}
@@ -682,15 +682,15 @@ public function startLogin(User $user): void
682682
*/
683683
protected function getSessionUserInfo(): array
684684
{
685-
return session(setting('Auth.sessionConfig')['field']) ?? [];
685+
return session(shieldSetting('Auth.sessionConfig')['field']) ?? [];
686686
}
687687

688688
/**
689689
* Removes User Info in Session
690690
*/
691691
protected function removeSessionUserInfo(): void
692692
{
693-
session()->remove(setting('Auth.sessionConfig')['field']);
693+
session()->remove(shieldSetting('Auth.sessionConfig')['field']);
694694
}
695695

696696
/**
@@ -714,7 +714,7 @@ protected function setSessionUserKey(string $key, $value): void
714714
{
715715
$sessionUserInfo = $this->getSessionUserInfo();
716716
$sessionUserInfo[$key] = $value;
717-
session()->set(setting('Auth.sessionConfig')['field'], $sessionUserInfo);
717+
session()->set(shieldSetting('Auth.sessionConfig')['field'], $sessionUserInfo);
718718
}
719719

720720
/**
@@ -724,7 +724,7 @@ protected function removeSessionUserKey(string $key): void
724724
{
725725
$sessionUserInfo = $this->getSessionUserInfo();
726726
unset($sessionUserInfo[$key]);
727-
session()->set(setting('Auth.sessionConfig')['field'], $sessionUserInfo);
727+
session()->set(shieldSetting('Auth.sessionConfig')['field'], $sessionUserInfo);
728728
}
729729

730730
/**
@@ -762,7 +762,7 @@ public function login(User $user): void
762762

763763
private function issueRememberMeToken(): void
764764
{
765-
if ($this->shouldRemember && setting('Auth.sessionConfig')['allowRemembering']) {
765+
if ($this->shouldRemember && shieldSetting('Auth.sessionConfig')['allowRemembering']) {
766766
$this->rememberUser($this->user);
767767

768768
// Reset so it doesn't mess up future calls.
@@ -788,10 +788,10 @@ private function removeRememberCookie(): void
788788

789789
// Remove remember-me cookie
790790
$response->deleteCookie(
791-
setting('Auth.sessionConfig')['rememberCookieName'],
792-
setting('Cookie.domain'),
793-
setting('Cookie.path'),
794-
setting('Cookie.prefix')
791+
shieldSetting('Auth.sessionConfig')['rememberCookieName'],
792+
shieldSetting('Cookie.domain'),
793+
shieldSetting('Cookie.path'),
794+
shieldSetting('Cookie.prefix')
795795
);
796796
}
797797

@@ -930,7 +930,7 @@ protected function rememberUser(User $user): void
930930

931931
private function calcExpires(): Time
932932
{
933-
$timestamp = Time::now()->getTimestamp() + setting('Auth.sessionConfig')['rememberLength'];
933+
$timestamp = Time::now()->getTimestamp() + shieldSetting('Auth.sessionConfig')['rememberLength'];
934934

935935
return Time::createFromTimestamp($timestamp);
936936
}
@@ -946,13 +946,13 @@ private function setRememberMeCookie(string $rawToken): void
946946
// Save it to the user's browser in a cookie.
947947
// Create the cookie
948948
$response->setCookie(
949-
setting('Auth.sessionConfig')['rememberCookieName'],
949+
shieldSetting('Auth.sessionConfig')['rememberCookieName'],
950950
$rawToken, // Value
951-
setting('Auth.sessionConfig')['rememberLength'], // # Seconds until it expires
952-
setting('Cookie.domain'),
953-
setting('Cookie.path'),
954-
setting('Cookie.prefix'),
955-
setting('Cookie.secure'), // Only send over HTTPS?
951+
shieldSetting('Auth.sessionConfig')['rememberLength'], // # Seconds until it expires
952+
shieldSetting('Cookie.domain'),
953+
shieldSetting('Cookie.path'),
954+
shieldSetting('Cookie.prefix'),
955+
shieldSetting('Cookie.secure'), // Only send over HTTPS?
956956
true // Hide from Javascript?
957957
);
958958
}

src/Authorization/Groups.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class Groups
2727
*/
2828
public function info(string $group): ?Group
2929
{
30-
$info = setting('AuthGroups.groups')[strtolower($group)] ?? null;
30+
$info = shieldSetting('AuthGroups.groups')[strtolower($group)] ?? null;
3131

3232
if (empty($info)) {
3333
return null;
@@ -47,7 +47,7 @@ public function save(Group $group): void
4747
throw new RuntimeException(lang('Auth.missingTitle'));
4848
}
4949

50-
$groups = setting('AuthGroups.groups');
50+
$groups = shieldSetting('AuthGroups.groups');
5151

5252
$alias = $group->alias;
5353

@@ -61,6 +61,6 @@ public function save(Group $group): void
6161
];
6262

6363
// Save it
64-
setting('AuthGroups.groups', $groups);
64+
shieldSetting('AuthGroups.groups', $groups);
6565
}
6666
}

src/Authorization/Traits/Authorizable.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ public function can(string ...$permissions): bool
251251
$this->populateGroups();
252252

253253
// Get the group matrix
254-
$matrix = setting('AuthGroups.matrix');
254+
$matrix = shieldSetting('AuthGroups.matrix');
255255

256256
foreach ($permissions as $permission) {
257257
// Permission must contain a scope and action
@@ -406,6 +406,6 @@ private function saveGroupsOrPermissions(string $type, $model, array $cache): vo
406406
*/
407407
private function getConfigPermissions(): array
408408
{
409-
return array_keys(setting('AuthGroups.permissions'));
409+
return array_keys(shieldSetting('AuthGroups.permissions'));
410410
}
411411
}

0 commit comments

Comments
 (0)