ApiToken docs and filter update. - #417

Merged
MGatner merged 5 commits into
developfrom
token-guides
Sep 8, 2022
Merged

ApiToken docs and filter update.#417
MGatner merged 5 commits into
developfrom
token-guides

Conversation

@lonnieezell

Copy link
Copy Markdown
Member

Added the first of a handful of guides stepping through setup and use Access Tokens to handle various situations. This one covers generic API requests.

Along the way I discovered that the TokenAuth filter didn't support checking against a scope, so I updated the filter to handle a single permission added when used as a route filter.

$routes->get('users', 'UserController::list', ['filter' => 'tokens:users-read']);

@kenjiskenjis added enhancement New feature or request documentation Improvements or additions to documentation labels Sep 2, 2022
@jozefrebjak

Copy link
Copy Markdown
Contributor

Added the first of a handful of guides stepping through setup and use Access Tokens to handle various situations. This one covers generic API requests.

Along the way I discovered that the TokenAuth filter didn't support checking against a scope, so I updated the filter to handle a single permission added when used as a route filter.

$routes->get('users', 'UserController::list', ['filter' => 'tokens:users-read']);

@lonnieezell Thanks for this PR. It will be nice to have an CLI command to generate Token for user at start to test functionality before implementing the whole flow with user interface to interact with API access.

@MGatner

Copy link
Copy Markdown
Member

This looks great! It's big, and I am short on time so will have to come back to it. Ideally you pull the token changes out to its own PR to make this smaller for review 🫣

@lonnieezelllonnieezell mentioned this pull request Sep 6, 2022
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Co-authored-by: MGatner <mgatner@icloud.com>
@lonnieezell

Copy link
Copy Markdown
MemberAuthor

@MGatner doc changes integrated.

@kenjis

kenjis commented Sep 7, 2022

Copy link
Copy Markdown
Member

The following errors have nothing to do with this PR. I send #423 to fix.

Run vendor/bin/phpstan analyze
Note: Using configuration file /home/runner/work/shield/shield/phpstan.neon.dist.
0/119 [░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 0%
119/119 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Error: Cannot call method isBefore() on array|float|int<min, -1>|int<1, max>|object|string|true.
Error: Cannot call method format() on array|bool|float|int|object|string.
Error: Cannot call method getTimestamp() on array|bool|float|int|object|string.
Error: Cannot call method getTimestamp() on array|bool|float|int|object|string.
------ ------------------------------------------------------------------ Line src/Authentication/Authenticators/AccessTokens.php ------ ------------------------------------------------------------------ 121 Cannot call method isBefore() on array|float|int<min, -1>|int<1, max>|object|string|true. ------ ------------------------------------------------------------------ ------ -------------------------------------------------------------------- Line src/Models/UserModel.php ------ -------------------------------------------------------------------- 329 Cannot call method format() on array|bool|float|int|object|string. ------ -------------------------------------------------------------------- ------ -------------------------------------- Line tests/Controllers/LoginTest.php ------ -------------------------------------- 92 Cannot call method getTimestamp() on array|bool|float|int|object|string. 154 Cannot call method getTimestamp() on array|bool|float|int|object|string. ------ -------------------------------------- Error: [ERROR] Found 4 errors 

https://github.com/codeigniter4/shield/runs/8220322852?check_suite_focus=true

Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated

```php
$routes->get('/access/token', static function() {
$token = auth()->user()->generateAccessToken(request()->getVar('token_name));

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

request() ?
Do you mean service('request') ?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't mind him, Laravel gets the bills paid. Yes he meant to use the service.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dang it :) I've considered adding a request() and response() helper method for years on this framework, but never did. I actually had to go double-check the code to ensure we didn't have it lol. But, yes, that's what I meant.

Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
@MGatner

MGatner commented Sep 7, 2022

Copy link
Copy Markdown
Member

We need a review process for reviews 🤦‍♂️ Thanks for catching wha to missed @kenjis.
@lonnieezell let us know if you'd just like us to finish this up, it's all tweaks.

Co-authored-by: kenjis <kenji.uui@gmail.com>
@lonnieezell

Copy link
Copy Markdown
MemberAuthor

@MGatner if you guys have the time and/or desire feel free to finish it up. I merged the suggestions.

Comment threaddocs/guides/api-tokens.md Outdated

@MGatnerMGatner left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kenjis or @datamweb one last review and merge?

@MGatner
MGatner merged commit 25f6155 into developSep 8, 2022
@MGatner
MGatner deleted the token-guides branch September 8, 2022 10:41
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationenhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@lonnieezell@jozefrebjak@MGatner@kenjis
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

ApiToken docs and filter update. - #417

Merged
MGatner merged 5 commits into
developfrom
token-guides
Sep 8, 2022
Merged

ApiToken docs and filter update.#417
MGatner merged 5 commits into
developfrom
token-guides

Conversation

@lonnieezell

Copy link
Copy Markdown
Member

Added the first of a handful of guides stepping through setup and use Access Tokens to handle various situations. This one covers generic API requests.

Along the way I discovered that the TokenAuth filter didn't support checking against a scope, so I updated the filter to handle a single permission added when used as a route filter.

$routes->get('users', 'UserController::list', ['filter' => 'tokens:users-read']);

@kenjiskenjis added enhancement New feature or request documentation Improvements or additions to documentation labels Sep 2, 2022
@jozefrebjak

Copy link
Copy Markdown
Contributor

Added the first of a handful of guides stepping through setup and use Access Tokens to handle various situations. This one covers generic API requests.

Along the way I discovered that the TokenAuth filter didn't support checking against a scope, so I updated the filter to handle a single permission added when used as a route filter.

$routes->get('users', 'UserController::list', ['filter' => 'tokens:users-read']);

@lonnieezell Thanks for this PR. It will be nice to have an CLI command to generate Token for user at start to test functionality before implementing the whole flow with user interface to interact with API access.

@MGatner

Copy link
Copy Markdown
Member

This looks great! It's big, and I am short on time so will have to come back to it. Ideally you pull the token changes out to its own PR to make this smaller for review 🫣

@lonnieezelllonnieezell mentioned this pull request Sep 6, 2022
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Co-authored-by: MGatner <mgatner@icloud.com>
@lonnieezell

Copy link
Copy Markdown
MemberAuthor

@MGatner doc changes integrated.

@kenjis

kenjis commented Sep 7, 2022

Copy link
Copy Markdown
Member

The following errors have nothing to do with this PR. I send #423 to fix.

Run vendor/bin/phpstan analyze
Note: Using configuration file /home/runner/work/shield/shield/phpstan.neon.dist.
0/119 [░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 0%
119/119 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Error: Cannot call method isBefore() on array|float|int<min, -1>|int<1, max>|object|string|true.
Error: Cannot call method format() on array|bool|float|int|object|string.
Error: Cannot call method getTimestamp() on array|bool|float|int|object|string.
Error: Cannot call method getTimestamp() on array|bool|float|int|object|string.
------ ------------------------------------------------------------------ Line src/Authentication/Authenticators/AccessTokens.php ------ ------------------------------------------------------------------ 121 Cannot call method isBefore() on array|float|int<min, -1>|int<1, max>|object|string|true. ------ ------------------------------------------------------------------ ------ -------------------------------------------------------------------- Line src/Models/UserModel.php ------ -------------------------------------------------------------------- 329 Cannot call method format() on array|bool|float|int|object|string. ------ -------------------------------------------------------------------- ------ -------------------------------------- Line tests/Controllers/LoginTest.php ------ -------------------------------------- 92 Cannot call method getTimestamp() on array|bool|float|int|object|string. 154 Cannot call method getTimestamp() on array|bool|float|int|object|string. ------ -------------------------------------- Error: [ERROR] Found 4 errors 

https://github.com/codeigniter4/shield/runs/8220322852?check_suite_focus=true

Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated

```php
$routes->get('/access/token', static function() {
$token = auth()->user()->generateAccessToken(request()->getVar('token_name));

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

request() ?
Do you mean service('request') ?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't mind him, Laravel gets the bills paid. Yes he meant to use the service.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dang it :) I've considered adding a request() and response() helper method for years on this framework, but never did. I actually had to go double-check the code to ensure we didn't have it lol. But, yes, that's what I meant.

Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
@MGatner

MGatner commented Sep 7, 2022

Copy link
Copy Markdown
Member

We need a review process for reviews 🤦‍♂️ Thanks for catching wha to missed @kenjis.
@lonnieezell let us know if you'd just like us to finish this up, it's all tweaks.

Co-authored-by: kenjis <kenji.uui@gmail.com>
@lonnieezell

Copy link
Copy Markdown
MemberAuthor

@MGatner if you guys have the time and/or desire feel free to finish it up. I merged the suggestions.

Comment threaddocs/guides/api-tokens.md Outdated

@MGatnerMGatner left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kenjis or @datamweb one last review and merge?

@MGatner
MGatner merged commit 25f6155 into developSep 8, 2022
@MGatner
MGatner deleted the token-guides branch September 8, 2022 10:41
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationenhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@lonnieezell@jozefrebjak@MGatner@kenjis
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

ApiToken docs and filter update. - #417

Merged
MGatner merged 5 commits into
developfrom
token-guides
Sep 8, 2022
Merged

ApiToken docs and filter update.#417
MGatner merged 5 commits into
developfrom
token-guides

Conversation

@lonnieezell

Copy link
Copy Markdown
Member

Added the first of a handful of guides stepping through setup and use Access Tokens to handle various situations. This one covers generic API requests.

Along the way I discovered that the TokenAuth filter didn't support checking against a scope, so I updated the filter to handle a single permission added when used as a route filter.

$routes->get('users', 'UserController::list', ['filter' => 'tokens:users-read']);

@kenjiskenjis added enhancement New feature or request documentation Improvements or additions to documentation labels Sep 2, 2022
@jozefrebjak

Copy link
Copy Markdown
Contributor

Added the first of a handful of guides stepping through setup and use Access Tokens to handle various situations. This one covers generic API requests.

Along the way I discovered that the TokenAuth filter didn't support checking against a scope, so I updated the filter to handle a single permission added when used as a route filter.

$routes->get('users', 'UserController::list', ['filter' => 'tokens:users-read']);

@lonnieezell Thanks for this PR. It will be nice to have an CLI command to generate Token for user at start to test functionality before implementing the whole flow with user interface to interact with API access.

@MGatner

Copy link
Copy Markdown
Member

This looks great! It's big, and I am short on time so will have to come back to it. Ideally you pull the token changes out to its own PR to make this smaller for review 🫣

@lonnieezelllonnieezell mentioned this pull request Sep 6, 2022
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Co-authored-by: MGatner <mgatner@icloud.com>
@lonnieezell

Copy link
Copy Markdown
MemberAuthor

@MGatner doc changes integrated.

@kenjis

kenjis commented Sep 7, 2022

Copy link
Copy Markdown
Member

The following errors have nothing to do with this PR. I send #423 to fix.

Run vendor/bin/phpstan analyze
Note: Using configuration file /home/runner/work/shield/shield/phpstan.neon.dist.
0/119 [░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 0%
119/119 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Error: Cannot call method isBefore() on array|float|int<min, -1>|int<1, max>|object|string|true.
Error: Cannot call method format() on array|bool|float|int|object|string.
Error: Cannot call method getTimestamp() on array|bool|float|int|object|string.
Error: Cannot call method getTimestamp() on array|bool|float|int|object|string.
------ ------------------------------------------------------------------ Line src/Authentication/Authenticators/AccessTokens.php ------ ------------------------------------------------------------------ 121 Cannot call method isBefore() on array|float|int<min, -1>|int<1, max>|object|string|true. ------ ------------------------------------------------------------------ ------ -------------------------------------------------------------------- Line src/Models/UserModel.php ------ -------------------------------------------------------------------- 329 Cannot call method format() on array|bool|float|int|object|string. ------ -------------------------------------------------------------------- ------ -------------------------------------- Line tests/Controllers/LoginTest.php ------ -------------------------------------- 92 Cannot call method getTimestamp() on array|bool|float|int|object|string. 154 Cannot call method getTimestamp() on array|bool|float|int|object|string. ------ -------------------------------------- Error: [ERROR] Found 4 errors 

https://github.com/codeigniter4/shield/runs/8220322852?check_suite_focus=true

Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated

```php
$routes->get('/access/token', static function() {
$token = auth()->user()->generateAccessToken(request()->getVar('token_name));

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

request() ?
Do you mean service('request') ?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't mind him, Laravel gets the bills paid. Yes he meant to use the service.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dang it :) I've considered adding a request() and response() helper method for years on this framework, but never did. I actually had to go double-check the code to ensure we didn't have it lol. But, yes, that's what I meant.

Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
@MGatner

MGatner commented Sep 7, 2022

Copy link
Copy Markdown
Member

We need a review process for reviews 🤦‍♂️ Thanks for catching wha to missed @kenjis.
@lonnieezell let us know if you'd just like us to finish this up, it's all tweaks.

Co-authored-by: kenjis <kenji.uui@gmail.com>
@lonnieezell

Copy link
Copy Markdown
MemberAuthor

@MGatner if you guys have the time and/or desire feel free to finish it up. I merged the suggestions.

Comment threaddocs/guides/api-tokens.md Outdated

@MGatnerMGatner left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kenjis or @datamweb one last review and merge?

@MGatner
MGatner merged commit 25f6155 into developSep 8, 2022
@MGatner
MGatner deleted the token-guides branch September 8, 2022 10:41
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationenhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@lonnieezell@jozefrebjak@MGatner@kenjis
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

ApiToken docs and filter update. - #417

Merged
MGatner merged 5 commits into
developfrom
token-guides
Sep 8, 2022
Merged

ApiToken docs and filter update.#417
MGatner merged 5 commits into
developfrom
token-guides

Conversation

@lonnieezell

Copy link
Copy Markdown
Member

Added the first of a handful of guides stepping through setup and use Access Tokens to handle various situations. This one covers generic API requests.

Along the way I discovered that the TokenAuth filter didn't support checking against a scope, so I updated the filter to handle a single permission added when used as a route filter.

$routes->get('users', 'UserController::list', ['filter' => 'tokens:users-read']);

@kenjiskenjis added enhancement New feature or request documentation Improvements or additions to documentation labels Sep 2, 2022
@jozefrebjak

Copy link
Copy Markdown
Contributor

Added the first of a handful of guides stepping through setup and use Access Tokens to handle various situations. This one covers generic API requests.

Along the way I discovered that the TokenAuth filter didn't support checking against a scope, so I updated the filter to handle a single permission added when used as a route filter.

$routes->get('users', 'UserController::list', ['filter' => 'tokens:users-read']);

@lonnieezell Thanks for this PR. It will be nice to have an CLI command to generate Token for user at start to test functionality before implementing the whole flow with user interface to interact with API access.

@MGatner

Copy link
Copy Markdown
Member

This looks great! It's big, and I am short on time so will have to come back to it. Ideally you pull the token changes out to its own PR to make this smaller for review 🫣

@lonnieezelllonnieezell mentioned this pull request Sep 6, 2022
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Co-authored-by: MGatner <mgatner@icloud.com>
@lonnieezell

Copy link
Copy Markdown
MemberAuthor

@MGatner doc changes integrated.

@kenjis

kenjis commented Sep 7, 2022

Copy link
Copy Markdown
Member

The following errors have nothing to do with this PR. I send #423 to fix.

Run vendor/bin/phpstan analyze
Note: Using configuration file /home/runner/work/shield/shield/phpstan.neon.dist.
0/119 [░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 0%
119/119 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Error: Cannot call method isBefore() on array|float|int<min, -1>|int<1, max>|object|string|true.
Error: Cannot call method format() on array|bool|float|int|object|string.
Error: Cannot call method getTimestamp() on array|bool|float|int|object|string.
Error: Cannot call method getTimestamp() on array|bool|float|int|object|string.
------ ------------------------------------------------------------------ Line src/Authentication/Authenticators/AccessTokens.php ------ ------------------------------------------------------------------ 121 Cannot call method isBefore() on array|float|int<min, -1>|int<1, max>|object|string|true. ------ ------------------------------------------------------------------ ------ -------------------------------------------------------------------- Line src/Models/UserModel.php ------ -------------------------------------------------------------------- 329 Cannot call method format() on array|bool|float|int|object|string. ------ -------------------------------------------------------------------- ------ -------------------------------------- Line tests/Controllers/LoginTest.php ------ -------------------------------------- 92 Cannot call method getTimestamp() on array|bool|float|int|object|string. 154 Cannot call method getTimestamp() on array|bool|float|int|object|string. ------ -------------------------------------- Error: [ERROR] Found 4 errors 

https://github.com/codeigniter4/shield/runs/8220322852?check_suite_focus=true

Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated

```php
$routes->get('/access/token', static function() {
$token = auth()->user()->generateAccessToken(request()->getVar('token_name));

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

request() ?
Do you mean service('request') ?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't mind him, Laravel gets the bills paid. Yes he meant to use the service.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dang it :) I've considered adding a request() and response() helper method for years on this framework, but never did. I actually had to go double-check the code to ensure we didn't have it lol. But, yes, that's what I meant.

Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
@MGatner

MGatner commented Sep 7, 2022

Copy link
Copy Markdown
Member

We need a review process for reviews 🤦‍♂️ Thanks for catching wha to missed @kenjis.
@lonnieezell let us know if you'd just like us to finish this up, it's all tweaks.

Co-authored-by: kenjis <kenji.uui@gmail.com>
@lonnieezell

Copy link
Copy Markdown
MemberAuthor

@MGatner if you guys have the time and/or desire feel free to finish it up. I merged the suggestions.

Comment threaddocs/guides/api-tokens.md Outdated

@MGatnerMGatner left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kenjis or @datamweb one last review and merge?

@MGatner
MGatner merged commit 25f6155 into developSep 8, 2022
@MGatner
MGatner deleted the token-guides branch September 8, 2022 10:41
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationenhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@lonnieezell@jozefrebjak@MGatner@kenjis
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

ApiToken docs and filter update. - #417

Merged
MGatner merged 5 commits into
developfrom
token-guides
Sep 8, 2022
Merged

ApiToken docs and filter update.#417
MGatner merged 5 commits into
developfrom
token-guides

Conversation

@lonnieezell

Copy link
Copy Markdown
Member

Added the first of a handful of guides stepping through setup and use Access Tokens to handle various situations. This one covers generic API requests.

Along the way I discovered that the TokenAuth filter didn't support checking against a scope, so I updated the filter to handle a single permission added when used as a route filter.

$routes->get('users', 'UserController::list', ['filter' => 'tokens:users-read']);

@kenjiskenjis added enhancement New feature or request documentation Improvements or additions to documentation labels Sep 2, 2022
@jozefrebjak

Copy link
Copy Markdown
Contributor

Added the first of a handful of guides stepping through setup and use Access Tokens to handle various situations. This one covers generic API requests.

Along the way I discovered that the TokenAuth filter didn't support checking against a scope, so I updated the filter to handle a single permission added when used as a route filter.

$routes->get('users', 'UserController::list', ['filter' => 'tokens:users-read']);

@lonnieezell Thanks for this PR. It will be nice to have an CLI command to generate Token for user at start to test functionality before implementing the whole flow with user interface to interact with API access.

@MGatner

Copy link
Copy Markdown
Member

This looks great! It's big, and I am short on time so will have to come back to it. Ideally you pull the token changes out to its own PR to make this smaller for review 🫣

@lonnieezelllonnieezell mentioned this pull request Sep 6, 2022
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Co-authored-by: MGatner <mgatner@icloud.com>
@lonnieezell

Copy link
Copy Markdown
MemberAuthor

@MGatner doc changes integrated.

@kenjis

kenjis commented Sep 7, 2022

Copy link
Copy Markdown
Member

The following errors have nothing to do with this PR. I send #423 to fix.

Run vendor/bin/phpstan analyze
Note: Using configuration file /home/runner/work/shield/shield/phpstan.neon.dist.
0/119 [░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 0%
119/119 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Error: Cannot call method isBefore() on array|float|int<min, -1>|int<1, max>|object|string|true.
Error: Cannot call method format() on array|bool|float|int|object|string.
Error: Cannot call method getTimestamp() on array|bool|float|int|object|string.
Error: Cannot call method getTimestamp() on array|bool|float|int|object|string.
------ ------------------------------------------------------------------ Line src/Authentication/Authenticators/AccessTokens.php ------ ------------------------------------------------------------------ 121 Cannot call method isBefore() on array|float|int<min, -1>|int<1, max>|object|string|true. ------ ------------------------------------------------------------------ ------ -------------------------------------------------------------------- Line src/Models/UserModel.php ------ -------------------------------------------------------------------- 329 Cannot call method format() on array|bool|float|int|object|string. ------ -------------------------------------------------------------------- ------ -------------------------------------- Line tests/Controllers/LoginTest.php ------ -------------------------------------- 92 Cannot call method getTimestamp() on array|bool|float|int|object|string. 154 Cannot call method getTimestamp() on array|bool|float|int|object|string. ------ -------------------------------------- Error: [ERROR] Found 4 errors 

https://github.com/codeigniter4/shield/runs/8220322852?check_suite_focus=true

Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated

```php
$routes->get('/access/token', static function() {
$token = auth()->user()->generateAccessToken(request()->getVar('token_name));

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

request() ?
Do you mean service('request') ?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't mind him, Laravel gets the bills paid. Yes he meant to use the service.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dang it :) I've considered adding a request() and response() helper method for years on this framework, but never did. I actually had to go double-check the code to ensure we didn't have it lol. But, yes, that's what I meant.

Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
@MGatner

MGatner commented Sep 7, 2022

Copy link
Copy Markdown
Member

We need a review process for reviews 🤦‍♂️ Thanks for catching wha to missed @kenjis.
@lonnieezell let us know if you'd just like us to finish this up, it's all tweaks.

Co-authored-by: kenjis <kenji.uui@gmail.com>
@lonnieezell

Copy link
Copy Markdown
MemberAuthor

@MGatner if you guys have the time and/or desire feel free to finish it up. I merged the suggestions.

Comment threaddocs/guides/api-tokens.md Outdated

@MGatnerMGatner left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kenjis or @datamweb one last review and merge?

@MGatner
MGatner merged commit 25f6155 into developSep 8, 2022
@MGatner
MGatner deleted the token-guides branch September 8, 2022 10:41
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationenhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@lonnieezell@jozefrebjak@MGatner@kenjis
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

ApiToken docs and filter update. - #417

Merged
MGatner merged 5 commits into
developfrom
token-guides
Sep 8, 2022
Merged

ApiToken docs and filter update.#417
MGatner merged 5 commits into
developfrom
token-guides

Conversation

@lonnieezell

Copy link
Copy Markdown
Member

Added the first of a handful of guides stepping through setup and use Access Tokens to handle various situations. This one covers generic API requests.

Along the way I discovered that the TokenAuth filter didn't support checking against a scope, so I updated the filter to handle a single permission added when used as a route filter.

$routes->get('users', 'UserController::list', ['filter' => 'tokens:users-read']);

@kenjiskenjis added enhancement New feature or request documentation Improvements or additions to documentation labels Sep 2, 2022
@jozefrebjak

Copy link
Copy Markdown
Contributor

Added the first of a handful of guides stepping through setup and use Access Tokens to handle various situations. This one covers generic API requests.

Along the way I discovered that the TokenAuth filter didn't support checking against a scope, so I updated the filter to handle a single permission added when used as a route filter.

$routes->get('users', 'UserController::list', ['filter' => 'tokens:users-read']);

@lonnieezell Thanks for this PR. It will be nice to have an CLI command to generate Token for user at start to test functionality before implementing the whole flow with user interface to interact with API access.

@MGatner

Copy link
Copy Markdown
Member

This looks great! It's big, and I am short on time so will have to come back to it. Ideally you pull the token changes out to its own PR to make this smaller for review 🫣

@lonnieezelllonnieezell mentioned this pull request Sep 6, 2022
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Co-authored-by: MGatner <mgatner@icloud.com>
@lonnieezell

Copy link
Copy Markdown
MemberAuthor

@MGatner doc changes integrated.

@kenjis

kenjis commented Sep 7, 2022

Copy link
Copy Markdown
Member

The following errors have nothing to do with this PR. I send #423 to fix.

Run vendor/bin/phpstan analyze
Note: Using configuration file /home/runner/work/shield/shield/phpstan.neon.dist.
0/119 [░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 0%
119/119 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Error: Cannot call method isBefore() on array|float|int<min, -1>|int<1, max>|object|string|true.
Error: Cannot call method format() on array|bool|float|int|object|string.
Error: Cannot call method getTimestamp() on array|bool|float|int|object|string.
Error: Cannot call method getTimestamp() on array|bool|float|int|object|string.
------ ------------------------------------------------------------------ Line src/Authentication/Authenticators/AccessTokens.php ------ ------------------------------------------------------------------ 121 Cannot call method isBefore() on array|float|int<min, -1>|int<1, max>|object|string|true. ------ ------------------------------------------------------------------ ------ -------------------------------------------------------------------- Line src/Models/UserModel.php ------ -------------------------------------------------------------------- 329 Cannot call method format() on array|bool|float|int|object|string. ------ -------------------------------------------------------------------- ------ -------------------------------------- Line tests/Controllers/LoginTest.php ------ -------------------------------------- 92 Cannot call method getTimestamp() on array|bool|float|int|object|string. 154 Cannot call method getTimestamp() on array|bool|float|int|object|string. ------ -------------------------------------- Error: [ERROR] Found 4 errors 

https://github.com/codeigniter4/shield/runs/8220322852?check_suite_focus=true

Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated

```php
$routes->get('/access/token', static function() {
$token = auth()->user()->generateAccessToken(request()->getVar('token_name));

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

request() ?
Do you mean service('request') ?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't mind him, Laravel gets the bills paid. Yes he meant to use the service.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dang it :) I've considered adding a request() and response() helper method for years on this framework, but never did. I actually had to go double-check the code to ensure we didn't have it lol. But, yes, that's what I meant.

Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
@MGatner

MGatner commented Sep 7, 2022

Copy link
Copy Markdown
Member

We need a review process for reviews 🤦‍♂️ Thanks for catching wha to missed @kenjis.
@lonnieezell let us know if you'd just like us to finish this up, it's all tweaks.

Co-authored-by: kenjis <kenji.uui@gmail.com>
@lonnieezell

Copy link
Copy Markdown
MemberAuthor

@MGatner if you guys have the time and/or desire feel free to finish it up. I merged the suggestions.

Comment threaddocs/guides/api-tokens.md Outdated

@MGatnerMGatner left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kenjis or @datamweb one last review and merge?

@MGatner
MGatner merged commit 25f6155 into developSep 8, 2022
@MGatner
MGatner deleted the token-guides branch September 8, 2022 10:41
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationenhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@lonnieezell@jozefrebjak@MGatner@kenjis
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

ApiToken docs and filter update. - #417

Merged
MGatner merged 5 commits into
developfrom
token-guides
Sep 8, 2022
Merged

ApiToken docs and filter update.#417
MGatner merged 5 commits into
developfrom
token-guides

Conversation

@lonnieezell

Copy link
Copy Markdown
Member

Added the first of a handful of guides stepping through setup and use Access Tokens to handle various situations. This one covers generic API requests.

Along the way I discovered that the TokenAuth filter didn't support checking against a scope, so I updated the filter to handle a single permission added when used as a route filter.

$routes->get('users', 'UserController::list', ['filter' => 'tokens:users-read']);

@kenjiskenjis added enhancement New feature or request documentation Improvements or additions to documentation labels Sep 2, 2022
@jozefrebjak

Copy link
Copy Markdown
Contributor

Added the first of a handful of guides stepping through setup and use Access Tokens to handle various situations. This one covers generic API requests.

Along the way I discovered that the TokenAuth filter didn't support checking against a scope, so I updated the filter to handle a single permission added when used as a route filter.

$routes->get('users', 'UserController::list', ['filter' => 'tokens:users-read']);

@lonnieezell Thanks for this PR. It will be nice to have an CLI command to generate Token for user at start to test functionality before implementing the whole flow with user interface to interact with API access.

@MGatner

Copy link
Copy Markdown
Member

This looks great! It's big, and I am short on time so will have to come back to it. Ideally you pull the token changes out to its own PR to make this smaller for review 🫣

@lonnieezelllonnieezell mentioned this pull request Sep 6, 2022
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Co-authored-by: MGatner <mgatner@icloud.com>
@lonnieezell

Copy link
Copy Markdown
MemberAuthor

@MGatner doc changes integrated.

@kenjis

kenjis commented Sep 7, 2022

Copy link
Copy Markdown
Member

The following errors have nothing to do with this PR. I send #423 to fix.

Run vendor/bin/phpstan analyze
Note: Using configuration file /home/runner/work/shield/shield/phpstan.neon.dist.
0/119 [░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 0%
119/119 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Error: Cannot call method isBefore() on array|float|int<min, -1>|int<1, max>|object|string|true.
Error: Cannot call method format() on array|bool|float|int|object|string.
Error: Cannot call method getTimestamp() on array|bool|float|int|object|string.
Error: Cannot call method getTimestamp() on array|bool|float|int|object|string.
------ ------------------------------------------------------------------ Line src/Authentication/Authenticators/AccessTokens.php ------ ------------------------------------------------------------------ 121 Cannot call method isBefore() on array|float|int<min, -1>|int<1, max>|object|string|true. ------ ------------------------------------------------------------------ ------ -------------------------------------------------------------------- Line src/Models/UserModel.php ------ -------------------------------------------------------------------- 329 Cannot call method format() on array|bool|float|int|object|string. ------ -------------------------------------------------------------------- ------ -------------------------------------- Line tests/Controllers/LoginTest.php ------ -------------------------------------- 92 Cannot call method getTimestamp() on array|bool|float|int|object|string. 154 Cannot call method getTimestamp() on array|bool|float|int|object|string. ------ -------------------------------------- Error: [ERROR] Found 4 errors 

https://github.com/codeigniter4/shield/runs/8220322852?check_suite_focus=true

Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated

```php
$routes->get('/access/token', static function() {
$token = auth()->user()->generateAccessToken(request()->getVar('token_name));

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

request() ?
Do you mean service('request') ?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't mind him, Laravel gets the bills paid. Yes he meant to use the service.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dang it :) I've considered adding a request() and response() helper method for years on this framework, but never did. I actually had to go double-check the code to ensure we didn't have it lol. But, yes, that's what I meant.

Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
@MGatner

MGatner commented Sep 7, 2022

Copy link
Copy Markdown
Member

We need a review process for reviews 🤦‍♂️ Thanks for catching wha to missed @kenjis.
@lonnieezell let us know if you'd just like us to finish this up, it's all tweaks.

Co-authored-by: kenjis <kenji.uui@gmail.com>
@lonnieezell

Copy link
Copy Markdown
MemberAuthor

@MGatner if you guys have the time and/or desire feel free to finish it up. I merged the suggestions.

Comment threaddocs/guides/api-tokens.md Outdated

@MGatnerMGatner left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kenjis or @datamweb one last review and merge?

@MGatner
MGatner merged commit 25f6155 into developSep 8, 2022
@MGatner
MGatner deleted the token-guides branch September 8, 2022 10:41
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationenhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@lonnieezell@jozefrebjak@MGatner@kenjis
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

ApiToken docs and filter update. - #417

Merged
MGatner merged 5 commits into
developfrom
token-guides
Sep 8, 2022
Merged

ApiToken docs and filter update.#417
MGatner merged 5 commits into
developfrom
token-guides

Conversation

@lonnieezell

Copy link
Copy Markdown
Member

Added the first of a handful of guides stepping through setup and use Access Tokens to handle various situations. This one covers generic API requests.

Along the way I discovered that the TokenAuth filter didn't support checking against a scope, so I updated the filter to handle a single permission added when used as a route filter.

$routes->get('users', 'UserController::list', ['filter' => 'tokens:users-read']);

@kenjiskenjis added enhancement New feature or request documentation Improvements or additions to documentation labels Sep 2, 2022
@jozefrebjak

Copy link
Copy Markdown
Contributor

Added the first of a handful of guides stepping through setup and use Access Tokens to handle various situations. This one covers generic API requests.

Along the way I discovered that the TokenAuth filter didn't support checking against a scope, so I updated the filter to handle a single permission added when used as a route filter.

$routes->get('users', 'UserController::list', ['filter' => 'tokens:users-read']);

@lonnieezell Thanks for this PR. It will be nice to have an CLI command to generate Token for user at start to test functionality before implementing the whole flow with user interface to interact with API access.

@MGatner

Copy link
Copy Markdown
Member

This looks great! It's big, and I am short on time so will have to come back to it. Ideally you pull the token changes out to its own PR to make this smaller for review 🫣

@lonnieezelllonnieezell mentioned this pull request Sep 6, 2022
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Co-authored-by: MGatner <mgatner@icloud.com>
@lonnieezell

Copy link
Copy Markdown
MemberAuthor

@MGatner doc changes integrated.

@kenjis

kenjis commented Sep 7, 2022

Copy link
Copy Markdown
Member

The following errors have nothing to do with this PR. I send #423 to fix.

Run vendor/bin/phpstan analyze
Note: Using configuration file /home/runner/work/shield/shield/phpstan.neon.dist.
0/119 [░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 0%
119/119 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Error: Cannot call method isBefore() on array|float|int<min, -1>|int<1, max>|object|string|true.
Error: Cannot call method format() on array|bool|float|int|object|string.
Error: Cannot call method getTimestamp() on array|bool|float|int|object|string.
Error: Cannot call method getTimestamp() on array|bool|float|int|object|string.
------ ------------------------------------------------------------------ Line src/Authentication/Authenticators/AccessTokens.php ------ ------------------------------------------------------------------ 121 Cannot call method isBefore() on array|float|int<min, -1>|int<1, max>|object|string|true. ------ ------------------------------------------------------------------ ------ -------------------------------------------------------------------- Line src/Models/UserModel.php ------ -------------------------------------------------------------------- 329 Cannot call method format() on array|bool|float|int|object|string. ------ -------------------------------------------------------------------- ------ -------------------------------------- Line tests/Controllers/LoginTest.php ------ -------------------------------------- 92 Cannot call method getTimestamp() on array|bool|float|int|object|string. 154 Cannot call method getTimestamp() on array|bool|float|int|object|string. ------ -------------------------------------- Error: [ERROR] Found 4 errors 

https://github.com/codeigniter4/shield/runs/8220322852?check_suite_focus=true

Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated

```php
$routes->get('/access/token', static function() {
$token = auth()->user()->generateAccessToken(request()->getVar('token_name));

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

request() ?
Do you mean service('request') ?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't mind him, Laravel gets the bills paid. Yes he meant to use the service.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dang it :) I've considered adding a request() and response() helper method for years on this framework, but never did. I actually had to go double-check the code to ensure we didn't have it lol. But, yes, that's what I meant.

Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
Comment threaddocs/guides/api-tokens.md Outdated
@MGatner

MGatner commented Sep 7, 2022

Copy link
Copy Markdown
Member

We need a review process for reviews 🤦‍♂️ Thanks for catching wha to missed @kenjis.
@lonnieezell let us know if you'd just like us to finish this up, it's all tweaks.

Co-authored-by: kenjis <kenji.uui@gmail.com>
@lonnieezell

Copy link
Copy Markdown
MemberAuthor

@MGatner if you guys have the time and/or desire feel free to finish it up. I merged the suggestions.

Comment threaddocs/guides/api-tokens.md Outdated

@MGatnerMGatner left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kenjis or @datamweb one last review and merge?

@MGatner
MGatner merged commit 25f6155 into developSep 8, 2022
@MGatner
MGatner deleted the token-guides branch September 8, 2022 10:41
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationenhancementNew feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@lonnieezell@jozefrebjak@MGatner@kenjis