GET https://kbin.spritesserver.nl/index.php/u/@derfunkatron@lemmy.world/hot

Security

Token

There is no security token.

Firewall

main Name
Security enabled
Stateless

Configuration

Key Value
provider security.user.provider.concrete.app_user_provider
context main
entry_point App\Security\KbinAuthenticator
user_checker App\Security\UserChecker
access_denied_handler (none)
access_denied_url (none)
authenticators
[
  "two_factor"
  "remember_me"
  "App\Security\KbinAuthenticator"
  "App\Security\FacebookAuthenticator"
  "App\Security\GoogleAuthenticator"
  "App\Security\GithubAuthenticator"
  "App\Security\KeycloakAuthenticator"
]

Listeners

Listener Duration Response
Symfony\Component\Security\Http\Firewall\ChannelListener {#723
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
  -logger: Monolog\Logger {#783 …}
  -httpPort: 80
  -httpsPort: 443
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\ContextListener {#706
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage {#1017 …}
  -sessionKey: "_security_main"
  -logger: Monolog\Logger {#783 …}
  -userProviders: Symfony\Component\DependencyInjection\Argument\RewindableGenerator {#705 …}
  -dispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
  -registered: false
  -trustResolver: Scheb\TwoFactorBundle\Security\Authentication\AuthenticationTrustResolver {#780 …}
  -sessionTrackerEnabler: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage::enableUsageTracking(): void {#703 …}
}
0.99 ms (none)
Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener {#584
  -authenticatorManager: Symfony\Component\Security\Http\Authentication\AuthenticatorManager {#595 …}
}
0.00 ms (none)
Scheb\TwoFactorBundle\Security\Http\Firewall\TwoFactorAccessListener {#582
  -twoFactorFirewallConfig: Scheb\TwoFactorBundle\Security\TwoFactor\TwoFactorFirewallConfig {#842 …}
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -twoFactorAccessDecider: Scheb\TwoFactorBundle\Security\Authorization\TwoFactorAccessDecider {#581 …}
}
0.08 ms (none)
Symfony\Component\Security\Http\Firewall\AccessListener {#579
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -accessDecisionManager: Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager {#937 …}
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\LogoutListener {#786
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -options: [
    "csrf_parameter" => "_csrf_token"
    "csrf_token_id" => "logout"
    "logout_path" => "app_logout"
  ]
  -httpUtils: Symfony\Component\Security\Http\HttpUtils {#841 …}
  -csrfTokenManager: Symfony\Component\Security\Csrf\CsrfTokenManager {#1015 …}
  -eventDispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
}
0.00 ms (none)

Authenticators

No authenticators have been recorded. Check previous profiles on your authentication endpoint.

Access Decision

affirmative Strategy
# Voter class
1
"Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter"
2
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
3
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
4
"Symfony\Component\Security\Core\Authorization\Voter\ExpressionVoter"
5
"App\Security\Voter\EntryCommentVoter"
6
"App\Security\Voter\EntryVoter"
7
"App\Security\Voter\MagazineVoter"
8
"App\Security\Voter\MessageThreadVoter"
9
"App\Security\Voter\MessageVoter"
10
"App\Security\Voter\NotificationVoter"
11
"App\Security\Voter\OAuth2UserConsentVoter"
12
"App\Security\Voter\PostCommentVoter"
13
"App\Security\Voter\PostVoter"
14
"App\Security\Voter\UserVoter"

Access decision log

# Result Attributes Object
1 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
2 DENIED moderate
Proxies\__CG__\App\Entity\Entry {#1549
  +user: Proxies\__CG__\App\Entity\User {#2382 …}
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1559 …}
  +image: null
  +domain: Proxies\__CG__\App\Entity\Domain {#2461 …}
  +slug: "Organise-Google-Takeout-Files"
  +title: "Organise Google Takeout Files"
  +url: null
  +body: """
    I downloaded all my photos with google takeout.\n
    \n
    The folder structure is an absolute mess.\n
    \n
    It would be nice to organise them into YYYY/MM folders but I haven’t been able to think of an easy way to do that.\n
    \n
    I note that all images seem to have sidecar files ? Like matching json files. I’ve never encountered these before and not really aware of any command line tools that support them. It’s just another challenge as regards writing a script to re-organise files.\n
    \n
    Any insights much appreciated.
    """
  +type: "article"
  +lang: "en"
  +isOc: false
  +hasEmbed: false
  +commentCount: 9
  +favouriteCount: 19
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1722430547 {#1683
    date: 2024-07-31 14:55:47.0 +02:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#2456 …}
  +votes: Doctrine\ORM\PersistentCollection {#2453 …}
  +reports: Doctrine\ORM\PersistentCollection {#2454 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1737 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1735 …}
  +badges: Doctrine\ORM\PersistentCollection {#1618 …}
  +children: [
    App\Entity\EntryComment {#1665
      +user: App\Entity\User {#260 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1549 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1559 …}
      +image: null
      +parent: Proxies\__CG__\App\Entity\EntryComment {#1582 …}
      +root: Proxies\__CG__\App\Entity\EntryComment {#1582 …}
      +body: "There’s the python image library (and a fork of it called pillow) and exif. There’s probably a bunch of others, too."
      +lang: "en"
      +isAdult: false
      +favouriteCount: 0
      +score: 0
      +lastActive: DateTime @1705107960 {#1595
        date: 2024-01-13 02:06:00.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@fine_sandy_bottom@discuss.tchncs.de"
        "@mindlessLump@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#1571 …}
      +nested: Doctrine\ORM\PersistentCollection {#1591 …}
      +votes: Doctrine\ORM\PersistentCollection {#1590 …}
      +reports: Doctrine\ORM\PersistentCollection {#1553 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1562 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1563 …}
      -id: 303804
      -bodyTs: "'bunch':20 'call':12 'exif':15 'fork':9 'imag':5 'librari':6 'other':22 'pillow':13 'probabl':18 'python':4"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6634105"
      +editedAt: null
      +createdAt: DateTimeImmutable @1705107960 {#1612
        date: 2024-01-13 02:06:00.0 +01:00
      }
      +"title": 303804
    }
  ]
  -id: 29476
  -titleTs: "'file':4 'googl':2 'organis':1 'takeout':3"
  -bodyTs: "'abl':31 'absolut':14 'anoth':76 'appreci':91 'awar':64 'challeng':77 'command':67 'download':2 'easi':36 'encount':58 'file':50,54,87 'folder':10,25 'googl':7 'haven':28 'imag':45 'insight':89 'json':53 'like':51 'line':68 'match':52 'mess':15 'much':90 'never':57 'nice':19 'note':42 'organis':21,86 'photo':5 're':85 're-organis':84 'realli':63 'regard':79 'script':82 'seem':46 'sidecar':49 'structur':11 'support':71 'takeout':8 'think':33 'tool':69 've':56 'way':37 'would':17 'write':80 'yyyy/mm':24"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1705178860
  +visibility: "visible             "
  +apId: "https://discuss.tchncs.de/post/9185572"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705094860 {#1648
    date: 2024-01-12 22:27:40.0 +01:00
  }
  +__isInitialized__: true
   …2
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS DENIED
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
3 DENIED edit
Proxies\__CG__\App\Entity\Entry {#1549
  +user: Proxies\__CG__\App\Entity\User {#2382 …}
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1559 …}
  +image: null
  +domain: Proxies\__CG__\App\Entity\Domain {#2461 …}
  +slug: "Organise-Google-Takeout-Files"
  +title: "Organise Google Takeout Files"
  +url: null
  +body: """
    I downloaded all my photos with google takeout.\n
    \n
    The folder structure is an absolute mess.\n
    \n
    It would be nice to organise them into YYYY/MM folders but I haven’t been able to think of an easy way to do that.\n
    \n
    I note that all images seem to have sidecar files ? Like matching json files. I’ve never encountered these before and not really aware of any command line tools that support them. It’s just another challenge as regards writing a script to re-organise files.\n
    \n
    Any insights much appreciated.
    """
  +type: "article"
  +lang: "en"
  +isOc: false
  +hasEmbed: false
  +commentCount: 9
  +favouriteCount: 19
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1722430547 {#1683
    date: 2024-07-31 14:55:47.0 +02:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#2456 …}
  +votes: Doctrine\ORM\PersistentCollection {#2453 …}
  +reports: Doctrine\ORM\PersistentCollection {#2454 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1737 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1735 …}
  +badges: Doctrine\ORM\PersistentCollection {#1618 …}
  +children: [
    App\Entity\EntryComment {#1665
      +user: App\Entity\User {#260 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1549 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1559 …}
      +image: null
      +parent: Proxies\__CG__\App\Entity\EntryComment {#1582 …}
      +root: Proxies\__CG__\App\Entity\EntryComment {#1582 …}
      +body: "There’s the python image library (and a fork of it called pillow) and exif. There’s probably a bunch of others, too."
      +lang: "en"
      +isAdult: false
      +favouriteCount: 0
      +score: 0
      +lastActive: DateTime @1705107960 {#1595
        date: 2024-01-13 02:06:00.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@fine_sandy_bottom@discuss.tchncs.de"
        "@mindlessLump@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#1571 …}
      +nested: Doctrine\ORM\PersistentCollection {#1591 …}
      +votes: Doctrine\ORM\PersistentCollection {#1590 …}
      +reports: Doctrine\ORM\PersistentCollection {#1553 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1562 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1563 …}
      -id: 303804
      -bodyTs: "'bunch':20 'call':12 'exif':15 'fork':9 'imag':5 'librari':6 'other':22 'pillow':13 'probabl':18 'python':4"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6634105"
      +editedAt: null
      +createdAt: DateTimeImmutable @1705107960 {#1612
        date: 2024-01-13 02:06:00.0 +01:00
      }
      +"title": 303804
    }
  ]
  -id: 29476
  -titleTs: "'file':4 'googl':2 'organis':1 'takeout':3"
  -bodyTs: "'abl':31 'absolut':14 'anoth':76 'appreci':91 'awar':64 'challeng':77 'command':67 'download':2 'easi':36 'encount':58 'file':50,54,87 'folder':10,25 'googl':7 'haven':28 'imag':45 'insight':89 'json':53 'like':51 'line':68 'match':52 'mess':15 'much':90 'never':57 'nice':19 'note':42 'organis':21,86 'photo':5 're':85 're-organis':84 'realli':63 'regard':79 'script':82 'seem':46 'sidecar':49 'structur':11 'support':71 'takeout':8 'think':33 'tool':69 've':56 'way':37 'would':17 'write':80 'yyyy/mm':24"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1705178860
  +visibility: "visible             "
  +apId: "https://discuss.tchncs.de/post/9185572"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705094860 {#1648
    date: 2024-01-12 22:27:40.0 +01:00
  }
  +__isInitialized__: true
   …2
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS DENIED
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
4 DENIED moderate
Proxies\__CG__\App\Entity\Entry {#1549
  +user: Proxies\__CG__\App\Entity\User {#2382 …}
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1559 …}
  +image: null
  +domain: Proxies\__CG__\App\Entity\Domain {#2461 …}
  +slug: "Organise-Google-Takeout-Files"
  +title: "Organise Google Takeout Files"
  +url: null
  +body: """
    I downloaded all my photos with google takeout.\n
    \n
    The folder structure is an absolute mess.\n
    \n
    It would be nice to organise them into YYYY/MM folders but I haven’t been able to think of an easy way to do that.\n
    \n
    I note that all images seem to have sidecar files ? Like matching json files. I’ve never encountered these before and not really aware of any command line tools that support them. It’s just another challenge as regards writing a script to re-organise files.\n
    \n
    Any insights much appreciated.
    """
  +type: "article"
  +lang: "en"
  +isOc: false
  +hasEmbed: false
  +commentCount: 9
  +favouriteCount: 19
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1722430547 {#1683
    date: 2024-07-31 14:55:47.0 +02:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#2456 …}
  +votes: Doctrine\ORM\PersistentCollection {#2453 …}
  +reports: Doctrine\ORM\PersistentCollection {#2454 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1737 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1735 …}
  +badges: Doctrine\ORM\PersistentCollection {#1618 …}
  +children: [
    App\Entity\EntryComment {#1665
      +user: App\Entity\User {#260 …}
      +entry: Proxies\__CG__\App\Entity\Entry {#1549 …2}
      +magazine: Proxies\__CG__\App\Entity\Magazine {#1559 …}
      +image: null
      +parent: Proxies\__CG__\App\Entity\EntryComment {#1582 …}
      +root: Proxies\__CG__\App\Entity\EntryComment {#1582 …}
      +body: "There’s the python image library (and a fork of it called pillow) and exif. There’s probably a bunch of others, too."
      +lang: "en"
      +isAdult: false
      +favouriteCount: 0
      +score: 0
      +lastActive: DateTime @1705107960 {#1595
        date: 2024-01-13 02:06:00.0 +01:00
      }
      +ip: null
      +tags: null
      +mentions: [
        "@fine_sandy_bottom@discuss.tchncs.de"
        "@mindlessLump@lemmy.world"
      ]
      +children: Doctrine\ORM\PersistentCollection {#1571 …}
      +nested: Doctrine\ORM\PersistentCollection {#1591 …}
      +votes: Doctrine\ORM\PersistentCollection {#1590 …}
      +reports: Doctrine\ORM\PersistentCollection {#1553 …}
      +favourites: Doctrine\ORM\PersistentCollection {#1562 …}
      +notifications: Doctrine\ORM\PersistentCollection {#1563 …}
      -id: 303804
      -bodyTs: "'bunch':20 'call':12 'exif':15 'fork':9 'imag':5 'librari':6 'other':22 'pillow':13 'probabl':18 'python':4"
      +ranking: 0
      +commentCount: 0
      +upVotes: 0
      +downVotes: 0
      +visibility: "visible             "
      +apId: "https://lemmy.world/comment/6634105"
      +editedAt: null
      +createdAt: DateTimeImmutable @1705107960 {#1612
        date: 2024-01-13 02:06:00.0 +01:00
      }
      +"title": 303804
    }
  ]
  -id: 29476
  -titleTs: "'file':4 'googl':2 'organis':1 'takeout':3"
  -bodyTs: "'abl':31 'absolut':14 'anoth':76 'appreci':91 'awar':64 'challeng':77 'command':67 'download':2 'easi':36 'encount':58 'file':50,54,87 'folder':10,25 'googl':7 'haven':28 'imag':45 'insight':89 'json':53 'like':51 'line':68 'match':52 'mess':15 'much':90 'never':57 'nice':19 'note':42 'organis':21,86 'photo':5 're':85 're-organis':84 'realli':63 'regard':79 'script':82 'seem':46 'sidecar':49 'structur':11 'support':71 'takeout':8 'think':33 'tool':69 've':56 'way':37 'would':17 'write':80 'yyyy/mm':24"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1705178860
  +visibility: "visible             "
  +apId: "https://discuss.tchncs.de/post/9185572"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705094860 {#1648
    date: 2024-01-12 22:27:40.0 +01:00
  }
  +__isInitialized__: true
   …2
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS DENIED
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
5 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
6 DENIED moderate
App\Entity\EntryComment {#1665
  +user: App\Entity\User {#260 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1549
    +user: Proxies\__CG__\App\Entity\User {#2382 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1559 …}
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#2461 …}
    +slug: "Organise-Google-Takeout-Files"
    +title: "Organise Google Takeout Files"
    +url: null
    +body: """
      I downloaded all my photos with google takeout.\n
      \n
      The folder structure is an absolute mess.\n
      \n
      It would be nice to organise them into YYYY/MM folders but I haven’t been able to think of an easy way to do that.\n
      \n
      I note that all images seem to have sidecar files ? Like matching json files. I’ve never encountered these before and not really aware of any command line tools that support them. It’s just another challenge as regards writing a script to re-organise files.\n
      \n
      Any insights much appreciated.
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 9
    +favouriteCount: 19
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1722430547 {#1683
      date: 2024-07-31 14:55:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2456 …}
    +votes: Doctrine\ORM\PersistentCollection {#2453 …}
    +reports: Doctrine\ORM\PersistentCollection {#2454 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1737 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1735 …}
    +badges: Doctrine\ORM\PersistentCollection {#1618 …}
    +children: [
      App\Entity\EntryComment {#1665}
    ]
    -id: 29476
    -titleTs: "'file':4 'googl':2 'organis':1 'takeout':3"
    -bodyTs: "'abl':31 'absolut':14 'anoth':76 'appreci':91 'awar':64 'challeng':77 'command':67 'download':2 'easi':36 'encount':58 'file':50,54,87 'folder':10,25 'googl':7 'haven':28 'imag':45 'insight':89 'json':53 'like':51 'line':68 'match':52 'mess':15 'much':90 'never':57 'nice':19 'note':42 'organis':21,86 'photo':5 're':85 're-organis':84 'realli':63 'regard':79 'script':82 'seem':46 'sidecar':49 'structur':11 'support':71 'takeout':8 'think':33 'tool':69 've':56 'way':37 'would':17 'write':80 'yyyy/mm':24"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705178860
    +visibility: "visible             "
    +apId: "https://discuss.tchncs.de/post/9185572"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705094860 {#1648
      date: 2024-01-12 22:27:40.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1559 …}
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#1582 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#1582 …}
  +body: "There’s the python image library (and a fork of it called pillow) and exif. There’s probably a bunch of others, too."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705107960 {#1595
    date: 2024-01-13 02:06:00.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@fine_sandy_bottom@discuss.tchncs.de"
    "@mindlessLump@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1571 …}
  +nested: Doctrine\ORM\PersistentCollection {#1591 …}
  +votes: Doctrine\ORM\PersistentCollection {#1590 …}
  +reports: Doctrine\ORM\PersistentCollection {#1553 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1562 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1563 …}
  -id: 303804
  -bodyTs: "'bunch':20 'call':12 'exif':15 'fork':9 'imag':5 'librari':6 'other':22 'pillow':13 'probabl':18 'python':4"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6634105"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705107960 {#1612
    date: 2024-01-13 02:06:00.0 +01:00
  }
  +"title": 303804
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
7 DENIED edit
App\Entity\EntryComment {#1665
  +user: App\Entity\User {#260 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1549
    +user: Proxies\__CG__\App\Entity\User {#2382 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1559 …}
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#2461 …}
    +slug: "Organise-Google-Takeout-Files"
    +title: "Organise Google Takeout Files"
    +url: null
    +body: """
      I downloaded all my photos with google takeout.\n
      \n
      The folder structure is an absolute mess.\n
      \n
      It would be nice to organise them into YYYY/MM folders but I haven’t been able to think of an easy way to do that.\n
      \n
      I note that all images seem to have sidecar files ? Like matching json files. I’ve never encountered these before and not really aware of any command line tools that support them. It’s just another challenge as regards writing a script to re-organise files.\n
      \n
      Any insights much appreciated.
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 9
    +favouriteCount: 19
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1722430547 {#1683
      date: 2024-07-31 14:55:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2456 …}
    +votes: Doctrine\ORM\PersistentCollection {#2453 …}
    +reports: Doctrine\ORM\PersistentCollection {#2454 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1737 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1735 …}
    +badges: Doctrine\ORM\PersistentCollection {#1618 …}
    +children: [
      App\Entity\EntryComment {#1665}
    ]
    -id: 29476
    -titleTs: "'file':4 'googl':2 'organis':1 'takeout':3"
    -bodyTs: "'abl':31 'absolut':14 'anoth':76 'appreci':91 'awar':64 'challeng':77 'command':67 'download':2 'easi':36 'encount':58 'file':50,54,87 'folder':10,25 'googl':7 'haven':28 'imag':45 'insight':89 'json':53 'like':51 'line':68 'match':52 'mess':15 'much':90 'never':57 'nice':19 'note':42 'organis':21,86 'photo':5 're':85 're-organis':84 'realli':63 'regard':79 'script':82 'seem':46 'sidecar':49 'structur':11 'support':71 'takeout':8 'think':33 'tool':69 've':56 'way':37 'would':17 'write':80 'yyyy/mm':24"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705178860
    +visibility: "visible             "
    +apId: "https://discuss.tchncs.de/post/9185572"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705094860 {#1648
      date: 2024-01-12 22:27:40.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1559 …}
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#1582 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#1582 …}
  +body: "There’s the python image library (and a fork of it called pillow) and exif. There’s probably a bunch of others, too."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705107960 {#1595
    date: 2024-01-13 02:06:00.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@fine_sandy_bottom@discuss.tchncs.de"
    "@mindlessLump@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1571 …}
  +nested: Doctrine\ORM\PersistentCollection {#1591 …}
  +votes: Doctrine\ORM\PersistentCollection {#1590 …}
  +reports: Doctrine\ORM\PersistentCollection {#1553 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1562 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1563 …}
  -id: 303804
  -bodyTs: "'bunch':20 'call':12 'exif':15 'fork':9 'imag':5 'librari':6 'other':22 'pillow':13 'probabl':18 'python':4"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6634105"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705107960 {#1612
    date: 2024-01-13 02:06:00.0 +01:00
  }
  +"title": 303804
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
8 DENIED moderate
App\Entity\EntryComment {#1665
  +user: App\Entity\User {#260 …}
  +entry: Proxies\__CG__\App\Entity\Entry {#1549
    +user: Proxies\__CG__\App\Entity\User {#2382 …}
    +magazine: Proxies\__CG__\App\Entity\Magazine {#1559 …}
    +image: null
    +domain: Proxies\__CG__\App\Entity\Domain {#2461 …}
    +slug: "Organise-Google-Takeout-Files"
    +title: "Organise Google Takeout Files"
    +url: null
    +body: """
      I downloaded all my photos with google takeout.\n
      \n
      The folder structure is an absolute mess.\n
      \n
      It would be nice to organise them into YYYY/MM folders but I haven’t been able to think of an easy way to do that.\n
      \n
      I note that all images seem to have sidecar files ? Like matching json files. I’ve never encountered these before and not really aware of any command line tools that support them. It’s just another challenge as regards writing a script to re-organise files.\n
      \n
      Any insights much appreciated.
      """
    +type: "article"
    +lang: "en"
    +isOc: false
    +hasEmbed: false
    +commentCount: 9
    +favouriteCount: 19
    +score: 0
    +isAdult: false
    +sticky: false
    +lastActive: DateTime @1722430547 {#1683
      date: 2024-07-31 14:55:47.0 +02:00
    }
    +ip: null
    +adaAmount: 0
    +tags: null
    +mentions: null
    +comments: Doctrine\ORM\PersistentCollection {#2456 …}
    +votes: Doctrine\ORM\PersistentCollection {#2453 …}
    +reports: Doctrine\ORM\PersistentCollection {#2454 …}
    +favourites: Doctrine\ORM\PersistentCollection {#1737 …}
    +notifications: Doctrine\ORM\PersistentCollection {#1735 …}
    +badges: Doctrine\ORM\PersistentCollection {#1618 …}
    +children: [
      App\Entity\EntryComment {#1665}
    ]
    -id: 29476
    -titleTs: "'file':4 'googl':2 'organis':1 'takeout':3"
    -bodyTs: "'abl':31 'absolut':14 'anoth':76 'appreci':91 'awar':64 'challeng':77 'command':67 'download':2 'easi':36 'encount':58 'file':50,54,87 'folder':10,25 'googl':7 'haven':28 'imag':45 'insight':89 'json':53 'like':51 'line':68 'match':52 'mess':15 'much':90 'never':57 'nice':19 'note':42 'organis':21,86 'photo':5 're':85 're-organis':84 'realli':63 'regard':79 'script':82 'seem':46 'sidecar':49 'structur':11 'support':71 'takeout':8 'think':33 'tool':69 've':56 'way':37 'would':17 'write':80 'yyyy/mm':24"
    +cross: false
    +upVotes: 0
    +downVotes: 0
    +ranking: 1705178860
    +visibility: "visible             "
    +apId: "https://discuss.tchncs.de/post/9185572"
    +editedAt: null
    +createdAt: DateTimeImmutable @1705094860 {#1648
      date: 2024-01-12 22:27:40.0 +01:00
    }
    +__isInitialized__: true
     …2
  }
  +magazine: Proxies\__CG__\App\Entity\Magazine {#1559 …}
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#1582 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#1582 …}
  +body: "There’s the python image library (and a fork of it called pillow) and exif. There’s probably a bunch of others, too."
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1705107960 {#1595
    date: 2024-01-13 02:06:00.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@fine_sandy_bottom@discuss.tchncs.de"
    "@mindlessLump@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1571 …}
  +nested: Doctrine\ORM\PersistentCollection {#1591 …}
  +votes: Doctrine\ORM\PersistentCollection {#1590 …}
  +reports: Doctrine\ORM\PersistentCollection {#1553 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1562 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1563 …}
  -id: 303804
  -bodyTs: "'bunch':20 'call':12 'exif':15 'fork':9 'imag':5 'librari':6 'other':22 'pillow':13 'probabl':18 'python':4"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.world/comment/6634105"
  +editedAt: null
  +createdAt: DateTimeImmutable @1705107960 {#1612
    date: 2024-01-13 02:06:00.0 +01:00
  }
  +"title": 303804
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
9 DENIED ROLE_ADMIN
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
10 DENIED ROLE_MODERATOR
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details