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 …}
}
1.24 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.04 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
App\Entity\EntryComment {#1369
  +user: Proxies\__CG__\App\Entity\User {#1370 …}
  +entry: App\Entity\Entry {#1856 …}
  +magazine: App\Entity\Magazine {#312
    +icon: Proxies\__CG__\App\Entity\Image {#293 …}
    +name: "asklemmy@lemmy.ml"
    +title: "asklemmy"
    +description: """
      A loosely moderated place to ask open-ended questions\n
      \n
      **[Search asklemmy](https://lemmy.ml/search?q=&type=Posts&listingType=All&communityId=8&page=1&sort=TopAll) 🔍**\n
      \n
      If your post meets the following criteria, it’s welcome here!\n
      \n
      1. Open-ended\n
      2. Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions\n
      3. **Not regarding using or support for Lemmy**: [context](https://lemmy.ml/post/1223478), find help in the list of support alternatives below\n
      4. Not ad nauseam inducing: please make sure it is a question that would be new to most members\n
      5. [An actual topic of discussion](https://lemmy.ml/post/1239589)\n
      \n
      Support alternatives:\n
      \n
      - [!lemmy_support@lemmy.ml](https://lemmy.ml/c/lemmy_support)\n
      - [!nostupidlemmyquestions@lemmy.dbzer0.com](https://lemmy.dbzer0.com/c/nostupidlemmyquestions)\n
      - [!selfhosted@lemmy.world](https://lemmy.world/c/selfhosted)\n
      \n
      ~Icon~ ~by~ ~@Double_A@discuss.tchncs.de~
      """
    +rules: null
    +subscriptionsCount: 0
    +entryCount: 580
    +entryCommentCount: 15558
    +postCount: 7
    +postCommentCount: 129
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1689748304 {#320
      date: 2023-07-19 08:31:44.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#284 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
    +entries: Doctrine\ORM\PersistentCollection {#227 …}
    +posts: Doctrine\ORM\PersistentCollection {#185 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
    +bans: Doctrine\ORM\PersistentCollection {#164 …}
    +reports: Doctrine\ORM\PersistentCollection {#150 …}
    +badges: Doctrine\ORM\PersistentCollection {#128 …}
    +logs: Doctrine\ORM\PersistentCollection {#118 …}
    +awards: Doctrine\ORM\PersistentCollection {#107 …}
    +categories: Doctrine\ORM\PersistentCollection {#94 …}
    -id: 9
    +apId: "asklemmy@lemmy.ml"
    +apProfileId: "https://lemmy.ml/c/asklemmy"
    +apPublicUrl: "https://lemmy.ml/c/asklemmy"
    +apFollowersUrl: "https://lemmy.ml/c/asklemmy/followers"
    +apInboxUrl: "https://lemmy.ml/inbox"
    +apDomain: "lemmy.ml"
    +apPreferredUsername: "asklemmy"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1689747596 {#321
      date: 2023-07-19 08:19:56.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1686889707 {#315
      date: 2023-06-16 06:28:27.0 +02:00
    }
  }
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#2451 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#2356 …}
  +body: """
    Yep! I ended up doing my entire co-op with them, and it meshed really well with my interest in creating developer-focused tooling and automation.\n
    \n
    Unfortunately I didn’t have the time to make the necessary changes and get approval from legal to open-source it, but I spent a good few months creating a tool for validating constraints for deployments on a Kubernetes cluster. It basically lets the operations team specify rules to check deployments for footguns that affect the cluster health, and then can be run by the dev-ops teams locally or as a Kubernetes operator (a daemon service running on the cluster) that will spam a Slack channel if a team deploys something super dangerous.\n
    \n
    The neat part was that the constraint checking logic was *extremely* powerful, completely customizable, versioned, *and* used a declarative policy language instead of a scripting language. None of the rules were hard-coded into the binary, and teams could even write their own rules to help them avoid past deployment issues. It handled iterating over arbitrary-sized lists, and even could access values across different files in the deployment to check complex constraints like some value in one manifest didn’t exceed a value declared in some other manifest.\n
    \n
    I’m not sure if a new tool has come along to fill the niche that mine did, but at the time, the others all had their own issues that failed to meet the needs I was trying to satisfy (e.g. hard-coded, used JavaScript, couldn’t handle loops, couldn’t check across file boundaries, etc.).\n
    \n
    It’s probably one of the tools I’m most proud of, honestly. I just wish I wrote the code better. Did not have much experience with Go at the time, and I really could have done a better job structuring the packages to have fewer layers of nested dependencies.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1689617998 {#1769
    date: 2023-07-17 20:19:58.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@axolittl@lemmy.world"
    "@Bishma@social.fossware.space"
    "@eth0p@iusearchlinux.fyi"
    "@jnato90@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#2466 …}
  +nested: Doctrine\ORM\PersistentCollection {#2288 …}
  +votes: Doctrine\ORM\PersistentCollection {#2446 …}
  +reports: Doctrine\ORM\PersistentCollection {#2439 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2489 …}
  +notifications: Doctrine\ORM\PersistentCollection {#60 …}
  -id: 21020
  -bodyTs: "'access':188 'across':190,269 'affect':84 'along':226 'approv':43 'arbitrari':182 'arbitrary-s':181 'autom':28 'avoid':173 'basic':71 'better':293,311 'binari':161 'boundari':271 'chang':40 'channel':117 'check':79,132,197,268 'cluster':69,86,111 'co':9 'co-op':8 'code':158,259,292 'come':225 'complet':137 'complex':198 'constraint':63,131,199 'could':164,187,307 'couldn':262,266 'creat':22,58 'customiz':138 'daemon':106 'danger':124 'declar':143,211 'depend':322 'deploy':65,80,121,175,195 'dev':96 'dev-op':95 'develop':24 'developer-focus':23 'didn':31,206 'differ':191 'done':309 'e.g':256 'end':3 'entir':7 'etc':272 'even':165,186 'exceed':208 'experi':298 'extrem':135 'fail':246 'fewer':318 'file':192,270 'fill':228 'focus':25 'footgun':82 'get':42 'go':300 'good':55 'handl':178,264 'hard':157,258 'hard-cod':156,257 'health':87 'help':171 'honest':285 'instead':146 'interest':20 'issu':176,244 'iter':179 'javascript':261 'job':312 'kubernet':68,103 'languag':145,150 'layer':319 'legal':45 'let':72 'like':200 'list':184 'local':99 'logic':133 'loop':265 'm':217,281 'make':37 'manifest':205,215 'meet':248 'mesh':15 'mine':232 'month':57 'much':297 'neat':126 'necessari':39 'need':250 'nest':321 'new':222 'nich':230 'none':151 'one':204,276 'op':10,97 'open':48 'open-sourc':47 'oper':74,104 'other':239 'packag':315 'part':127 'past':174 'polici':144 'power':136 'probabl':275 'proud':283 'realli':16,306 'rule':77,154,169 'run':92,108 'satisfi':255 'script':149 'servic':107 'size':183 'slack':116 'someth':122 'sourc':49 'spam':114 'specifi':76 'spent':53 'structur':313 'super':123 'sure':219 'team':75,98,120,163 'time':35,237,303 'tool':26,60,223,279 'tri':253 'unfortun':29 'use':141,260 'valid':62 'valu':189,202,210 'version':139 'well':17 'wish':288 'write':166 'wrote':290 'yep':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://iusearchlinux.fyi/comment/797186"
  +editedAt: DateTimeImmutable @1689618440 {#1945
    date: 2023-07-17 20:27:20.0 +02:00
  }
  +createdAt: DateTimeImmutable @1689617998 {#1368
    date: 2023-07-17 20:19:58.0 +02:00
  }
}
"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
3 DENIED edit
App\Entity\EntryComment {#1369
  +user: Proxies\__CG__\App\Entity\User {#1370 …}
  +entry: App\Entity\Entry {#1856 …}
  +magazine: App\Entity\Magazine {#312
    +icon: Proxies\__CG__\App\Entity\Image {#293 …}
    +name: "asklemmy@lemmy.ml"
    +title: "asklemmy"
    +description: """
      A loosely moderated place to ask open-ended questions\n
      \n
      **[Search asklemmy](https://lemmy.ml/search?q=&type=Posts&listingType=All&communityId=8&page=1&sort=TopAll) 🔍**\n
      \n
      If your post meets the following criteria, it’s welcome here!\n
      \n
      1. Open-ended\n
      2. Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions\n
      3. **Not regarding using or support for Lemmy**: [context](https://lemmy.ml/post/1223478), find help in the list of support alternatives below\n
      4. Not ad nauseam inducing: please make sure it is a question that would be new to most members\n
      5. [An actual topic of discussion](https://lemmy.ml/post/1239589)\n
      \n
      Support alternatives:\n
      \n
      - [!lemmy_support@lemmy.ml](https://lemmy.ml/c/lemmy_support)\n
      - [!nostupidlemmyquestions@lemmy.dbzer0.com](https://lemmy.dbzer0.com/c/nostupidlemmyquestions)\n
      - [!selfhosted@lemmy.world](https://lemmy.world/c/selfhosted)\n
      \n
      ~Icon~ ~by~ ~@Double_A@discuss.tchncs.de~
      """
    +rules: null
    +subscriptionsCount: 0
    +entryCount: 580
    +entryCommentCount: 15558
    +postCount: 7
    +postCommentCount: 129
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1689748304 {#320
      date: 2023-07-19 08:31:44.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#284 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
    +entries: Doctrine\ORM\PersistentCollection {#227 …}
    +posts: Doctrine\ORM\PersistentCollection {#185 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
    +bans: Doctrine\ORM\PersistentCollection {#164 …}
    +reports: Doctrine\ORM\PersistentCollection {#150 …}
    +badges: Doctrine\ORM\PersistentCollection {#128 …}
    +logs: Doctrine\ORM\PersistentCollection {#118 …}
    +awards: Doctrine\ORM\PersistentCollection {#107 …}
    +categories: Doctrine\ORM\PersistentCollection {#94 …}
    -id: 9
    +apId: "asklemmy@lemmy.ml"
    +apProfileId: "https://lemmy.ml/c/asklemmy"
    +apPublicUrl: "https://lemmy.ml/c/asklemmy"
    +apFollowersUrl: "https://lemmy.ml/c/asklemmy/followers"
    +apInboxUrl: "https://lemmy.ml/inbox"
    +apDomain: "lemmy.ml"
    +apPreferredUsername: "asklemmy"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1689747596 {#321
      date: 2023-07-19 08:19:56.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1686889707 {#315
      date: 2023-06-16 06:28:27.0 +02:00
    }
  }
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#2451 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#2356 …}
  +body: """
    Yep! I ended up doing my entire co-op with them, and it meshed really well with my interest in creating developer-focused tooling and automation.\n
    \n
    Unfortunately I didn’t have the time to make the necessary changes and get approval from legal to open-source it, but I spent a good few months creating a tool for validating constraints for deployments on a Kubernetes cluster. It basically lets the operations team specify rules to check deployments for footguns that affect the cluster health, and then can be run by the dev-ops teams locally or as a Kubernetes operator (a daemon service running on the cluster) that will spam a Slack channel if a team deploys something super dangerous.\n
    \n
    The neat part was that the constraint checking logic was *extremely* powerful, completely customizable, versioned, *and* used a declarative policy language instead of a scripting language. None of the rules were hard-coded into the binary, and teams could even write their own rules to help them avoid past deployment issues. It handled iterating over arbitrary-sized lists, and even could access values across different files in the deployment to check complex constraints like some value in one manifest didn’t exceed a value declared in some other manifest.\n
    \n
    I’m not sure if a new tool has come along to fill the niche that mine did, but at the time, the others all had their own issues that failed to meet the needs I was trying to satisfy (e.g. hard-coded, used JavaScript, couldn’t handle loops, couldn’t check across file boundaries, etc.).\n
    \n
    It’s probably one of the tools I’m most proud of, honestly. I just wish I wrote the code better. Did not have much experience with Go at the time, and I really could have done a better job structuring the packages to have fewer layers of nested dependencies.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1689617998 {#1769
    date: 2023-07-17 20:19:58.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@axolittl@lemmy.world"
    "@Bishma@social.fossware.space"
    "@eth0p@iusearchlinux.fyi"
    "@jnato90@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#2466 …}
  +nested: Doctrine\ORM\PersistentCollection {#2288 …}
  +votes: Doctrine\ORM\PersistentCollection {#2446 …}
  +reports: Doctrine\ORM\PersistentCollection {#2439 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2489 …}
  +notifications: Doctrine\ORM\PersistentCollection {#60 …}
  -id: 21020
  -bodyTs: "'access':188 'across':190,269 'affect':84 'along':226 'approv':43 'arbitrari':182 'arbitrary-s':181 'autom':28 'avoid':173 'basic':71 'better':293,311 'binari':161 'boundari':271 'chang':40 'channel':117 'check':79,132,197,268 'cluster':69,86,111 'co':9 'co-op':8 'code':158,259,292 'come':225 'complet':137 'complex':198 'constraint':63,131,199 'could':164,187,307 'couldn':262,266 'creat':22,58 'customiz':138 'daemon':106 'danger':124 'declar':143,211 'depend':322 'deploy':65,80,121,175,195 'dev':96 'dev-op':95 'develop':24 'developer-focus':23 'didn':31,206 'differ':191 'done':309 'e.g':256 'end':3 'entir':7 'etc':272 'even':165,186 'exceed':208 'experi':298 'extrem':135 'fail':246 'fewer':318 'file':192,270 'fill':228 'focus':25 'footgun':82 'get':42 'go':300 'good':55 'handl':178,264 'hard':157,258 'hard-cod':156,257 'health':87 'help':171 'honest':285 'instead':146 'interest':20 'issu':176,244 'iter':179 'javascript':261 'job':312 'kubernet':68,103 'languag':145,150 'layer':319 'legal':45 'let':72 'like':200 'list':184 'local':99 'logic':133 'loop':265 'm':217,281 'make':37 'manifest':205,215 'meet':248 'mesh':15 'mine':232 'month':57 'much':297 'neat':126 'necessari':39 'need':250 'nest':321 'new':222 'nich':230 'none':151 'one':204,276 'op':10,97 'open':48 'open-sourc':47 'oper':74,104 'other':239 'packag':315 'part':127 'past':174 'polici':144 'power':136 'probabl':275 'proud':283 'realli':16,306 'rule':77,154,169 'run':92,108 'satisfi':255 'script':149 'servic':107 'size':183 'slack':116 'someth':122 'sourc':49 'spam':114 'specifi':76 'spent':53 'structur':313 'super':123 'sure':219 'team':75,98,120,163 'time':35,237,303 'tool':26,60,223,279 'tri':253 'unfortun':29 'use':141,260 'valid':62 'valu':189,202,210 'version':139 'well':17 'wish':288 'write':166 'wrote':290 'yep':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://iusearchlinux.fyi/comment/797186"
  +editedAt: DateTimeImmutable @1689618440 {#1945
    date: 2023-07-17 20:27:20.0 +02:00
  }
  +createdAt: DateTimeImmutable @1689617998 {#1368
    date: 2023-07-17 20:19:58.0 +02:00
  }
}
"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
4 DENIED moderate
App\Entity\EntryComment {#1369
  +user: Proxies\__CG__\App\Entity\User {#1370 …}
  +entry: App\Entity\Entry {#1856 …}
  +magazine: App\Entity\Magazine {#312
    +icon: Proxies\__CG__\App\Entity\Image {#293 …}
    +name: "asklemmy@lemmy.ml"
    +title: "asklemmy"
    +description: """
      A loosely moderated place to ask open-ended questions\n
      \n
      **[Search asklemmy](https://lemmy.ml/search?q=&type=Posts&listingType=All&communityId=8&page=1&sort=TopAll) 🔍**\n
      \n
      If your post meets the following criteria, it’s welcome here!\n
      \n
      1. Open-ended\n
      2. Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions\n
      3. **Not regarding using or support for Lemmy**: [context](https://lemmy.ml/post/1223478), find help in the list of support alternatives below\n
      4. Not ad nauseam inducing: please make sure it is a question that would be new to most members\n
      5. [An actual topic of discussion](https://lemmy.ml/post/1239589)\n
      \n
      Support alternatives:\n
      \n
      - [!lemmy_support@lemmy.ml](https://lemmy.ml/c/lemmy_support)\n
      - [!nostupidlemmyquestions@lemmy.dbzer0.com](https://lemmy.dbzer0.com/c/nostupidlemmyquestions)\n
      - [!selfhosted@lemmy.world](https://lemmy.world/c/selfhosted)\n
      \n
      ~Icon~ ~by~ ~@Double_A@discuss.tchncs.de~
      """
    +rules: null
    +subscriptionsCount: 0
    +entryCount: 580
    +entryCommentCount: 15558
    +postCount: 7
    +postCommentCount: 129
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1689748304 {#320
      date: 2023-07-19 08:31:44.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#284 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
    +entries: Doctrine\ORM\PersistentCollection {#227 …}
    +posts: Doctrine\ORM\PersistentCollection {#185 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
    +bans: Doctrine\ORM\PersistentCollection {#164 …}
    +reports: Doctrine\ORM\PersistentCollection {#150 …}
    +badges: Doctrine\ORM\PersistentCollection {#128 …}
    +logs: Doctrine\ORM\PersistentCollection {#118 …}
    +awards: Doctrine\ORM\PersistentCollection {#107 …}
    +categories: Doctrine\ORM\PersistentCollection {#94 …}
    -id: 9
    +apId: "asklemmy@lemmy.ml"
    +apProfileId: "https://lemmy.ml/c/asklemmy"
    +apPublicUrl: "https://lemmy.ml/c/asklemmy"
    +apFollowersUrl: "https://lemmy.ml/c/asklemmy/followers"
    +apInboxUrl: "https://lemmy.ml/inbox"
    +apDomain: "lemmy.ml"
    +apPreferredUsername: "asklemmy"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1689747596 {#321
      date: 2023-07-19 08:19:56.0 +02:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1686889707 {#315
      date: 2023-06-16 06:28:27.0 +02:00
    }
  }
  +image: null
  +parent: Proxies\__CG__\App\Entity\EntryComment {#2451 …}
  +root: Proxies\__CG__\App\Entity\EntryComment {#2356 …}
  +body: """
    Yep! I ended up doing my entire co-op with them, and it meshed really well with my interest in creating developer-focused tooling and automation.\n
    \n
    Unfortunately I didn’t have the time to make the necessary changes and get approval from legal to open-source it, but I spent a good few months creating a tool for validating constraints for deployments on a Kubernetes cluster. It basically lets the operations team specify rules to check deployments for footguns that affect the cluster health, and then can be run by the dev-ops teams locally or as a Kubernetes operator (a daemon service running on the cluster) that will spam a Slack channel if a team deploys something super dangerous.\n
    \n
    The neat part was that the constraint checking logic was *extremely* powerful, completely customizable, versioned, *and* used a declarative policy language instead of a scripting language. None of the rules were hard-coded into the binary, and teams could even write their own rules to help them avoid past deployment issues. It handled iterating over arbitrary-sized lists, and even could access values across different files in the deployment to check complex constraints like some value in one manifest didn’t exceed a value declared in some other manifest.\n
    \n
    I’m not sure if a new tool has come along to fill the niche that mine did, but at the time, the others all had their own issues that failed to meet the needs I was trying to satisfy (e.g. hard-coded, used JavaScript, couldn’t handle loops, couldn’t check across file boundaries, etc.).\n
    \n
    It’s probably one of the tools I’m most proud of, honestly. I just wish I wrote the code better. Did not have much experience with Go at the time, and I really could have done a better job structuring the packages to have fewer layers of nested dependencies.
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 0
  +score: 0
  +lastActive: DateTime @1689617998 {#1769
    date: 2023-07-17 20:19:58.0 +02:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@axolittl@lemmy.world"
    "@Bishma@social.fossware.space"
    "@eth0p@iusearchlinux.fyi"
    "@jnato90@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#2466 …}
  +nested: Doctrine\ORM\PersistentCollection {#2288 …}
  +votes: Doctrine\ORM\PersistentCollection {#2446 …}
  +reports: Doctrine\ORM\PersistentCollection {#2439 …}
  +favourites: Doctrine\ORM\PersistentCollection {#2489 …}
  +notifications: Doctrine\ORM\PersistentCollection {#60 …}
  -id: 21020
  -bodyTs: "'access':188 'across':190,269 'affect':84 'along':226 'approv':43 'arbitrari':182 'arbitrary-s':181 'autom':28 'avoid':173 'basic':71 'better':293,311 'binari':161 'boundari':271 'chang':40 'channel':117 'check':79,132,197,268 'cluster':69,86,111 'co':9 'co-op':8 'code':158,259,292 'come':225 'complet':137 'complex':198 'constraint':63,131,199 'could':164,187,307 'couldn':262,266 'creat':22,58 'customiz':138 'daemon':106 'danger':124 'declar':143,211 'depend':322 'deploy':65,80,121,175,195 'dev':96 'dev-op':95 'develop':24 'developer-focus':23 'didn':31,206 'differ':191 'done':309 'e.g':256 'end':3 'entir':7 'etc':272 'even':165,186 'exceed':208 'experi':298 'extrem':135 'fail':246 'fewer':318 'file':192,270 'fill':228 'focus':25 'footgun':82 'get':42 'go':300 'good':55 'handl':178,264 'hard':157,258 'hard-cod':156,257 'health':87 'help':171 'honest':285 'instead':146 'interest':20 'issu':176,244 'iter':179 'javascript':261 'job':312 'kubernet':68,103 'languag':145,150 'layer':319 'legal':45 'let':72 'like':200 'list':184 'local':99 'logic':133 'loop':265 'm':217,281 'make':37 'manifest':205,215 'meet':248 'mesh':15 'mine':232 'month':57 'much':297 'neat':126 'necessari':39 'need':250 'nest':321 'new':222 'nich':230 'none':151 'one':204,276 'op':10,97 'open':48 'open-sourc':47 'oper':74,104 'other':239 'packag':315 'part':127 'past':174 'polici':144 'power':136 'probabl':275 'proud':283 'realli':16,306 'rule':77,154,169 'run':92,108 'satisfi':255 'script':149 'servic':107 'size':183 'slack':116 'someth':122 'sourc':49 'spam':114 'specifi':76 'spent':53 'structur':313 'super':123 'sure':219 'team':75,98,120,163 'time':35,237,303 'tool':26,60,223,279 'tri':253 'unfortun':29 'use':141,260 'valid':62 'valu':189,202,210 'version':139 'well':17 'wish':288 'write':166 'wrote':290 'yep':1"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://iusearchlinux.fyi/comment/797186"
  +editedAt: DateTimeImmutable @1689618440 {#1945
    date: 2023-07-17 20:27:20.0 +02:00
  }
  +createdAt: DateTimeImmutable @1689617998 {#1368
    date: 2023-07-17 20:19:58.0 +02:00
  }
}
"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
5 DENIED edit
App\Entity\Magazine {#312
  +icon: Proxies\__CG__\App\Entity\Image {#293 …}
  +name: "asklemmy@lemmy.ml"
  +title: "asklemmy"
  +description: """
    A loosely moderated place to ask open-ended questions\n
    \n
    **[Search asklemmy](https://lemmy.ml/search?q=&type=Posts&listingType=All&communityId=8&page=1&sort=TopAll) 🔍**\n
    \n
    If your post meets the following criteria, it’s welcome here!\n
    \n
    1. Open-ended\n
    2. Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions\n
    3. **Not regarding using or support for Lemmy**: [context](https://lemmy.ml/post/1223478), find help in the list of support alternatives below\n
    4. Not ad nauseam inducing: please make sure it is a question that would be new to most members\n
    5. [An actual topic of discussion](https://lemmy.ml/post/1239589)\n
    \n
    Support alternatives:\n
    \n
    - [!lemmy_support@lemmy.ml](https://lemmy.ml/c/lemmy_support)\n
    - [!nostupidlemmyquestions@lemmy.dbzer0.com](https://lemmy.dbzer0.com/c/nostupidlemmyquestions)\n
    - [!selfhosted@lemmy.world](https://lemmy.world/c/selfhosted)\n
    \n
    ~Icon~ ~by~ ~@Double_A@discuss.tchncs.de~
    """
  +rules: null
  +subscriptionsCount: 0
  +entryCount: 580
  +entryCommentCount: 15558
  +postCount: 7
  +postCommentCount: 129
  +isAdult: false
  +customCss: null
  +lastActive: DateTime @1689748304 {#320
    date: 2023-07-19 08:31:44.0 +02:00
  }
  +markedForDeletionAt: null
  +tags: null
  +moderators: Doctrine\ORM\PersistentCollection {#284 …}
  +ownershipRequests: Doctrine\ORM\PersistentCollection {#280 …}
  +moderatorRequests: Doctrine\ORM\PersistentCollection {#269 …}
  +entries: Doctrine\ORM\PersistentCollection {#227 …}
  +posts: Doctrine\ORM\PersistentCollection {#185 …}
  +subscriptions: Doctrine\ORM\PersistentCollection {#247 …}
  +bans: Doctrine\ORM\PersistentCollection {#164 …}
  +reports: Doctrine\ORM\PersistentCollection {#150 …}
  +badges: Doctrine\ORM\PersistentCollection {#128 …}
  +logs: Doctrine\ORM\PersistentCollection {#118 …}
  +awards: Doctrine\ORM\PersistentCollection {#107 …}
  +categories: Doctrine\ORM\PersistentCollection {#94 …}
  -id: 9
  +apId: "asklemmy@lemmy.ml"
  +apProfileId: "https://lemmy.ml/c/asklemmy"
  +apPublicUrl: "https://lemmy.ml/c/asklemmy"
  +apFollowersUrl: "https://lemmy.ml/c/asklemmy/followers"
  +apInboxUrl: "https://lemmy.ml/inbox"
  +apDomain: "lemmy.ml"
  +apPreferredUsername: "asklemmy"
  +apDiscoverable: true
  +apManuallyApprovesFollowers: null
  +privateKey: null
  +publicKey: null
  +apFetchedAt: DateTime @1689747596 {#321
    date: 2023-07-19 08:19:56.0 +02:00
  }
  +apDeletedAt: null
  +apTimeoutAt: null
  +visibility: "visible             "
  +createdAt: DateTimeImmutable @1686889707 {#315
    date: 2023-06-16 06:28:27.0 +02:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS DENIED
"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