GET https://kbin.spritesserver.nl/m/selfhosted@lemmy.world/t/33449/PlanarAlly-2024-1-Release/votes/down

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.58 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\Entry {#1846
  +user: Proxies\__CG__\App\Entity\User {#1899 …}
  +magazine: App\Entity\Magazine {#289
    +icon: Proxies\__CG__\App\Entity\Image {#270 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#299
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#261 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#257 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#246 …}
    +entries: Doctrine\ORM\PersistentCollection {#204 …}
    +posts: Doctrine\ORM\PersistentCollection {#162 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#224 …}
    +bans: Doctrine\ORM\PersistentCollection {#141 …}
    +reports: Doctrine\ORM\PersistentCollection {#127 …}
    +badges: Doctrine\ORM\PersistentCollection {#105 …}
    +logs: Doctrine\ORM\PersistentCollection {#95 …}
    +awards: Doctrine\ORM\PersistentCollection {#84 …}
    +categories: Doctrine\ORM\PersistentCollection {#71 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#293
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#292
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +image: Proxies\__CG__\App\Entity\Image {#1889 …}
  +domain: Proxies\__CG__\App\Entity\Domain {#1913 …}
  +slug: "PlanarAlly-2024-1-Release"
  +title: "PlanarAlly 2024.1 Release!"
  +url: "https://github.com/Kruptein/PlanarAlly/releases/tag/2024.1"
  +body: """
    For those that have never heard of it, PlanarAlly is an open-source self-hosted virtual tabletop (VTT) for TTRPG games. Here I’ve compiled the most important features/changes from their [blog post](https://www.planarally.io/blog/release-2024.1/). The full release notes are available on their GitHub: [github.com/Kruptein/PlanarAlly/releases/…/2024.1](https://github.com/Kruptein/PlanarAlly/releases/tag/2024.1)\n
    \n
    Vision Blocking Update\n
    ----------------------\n
    \n
    A new vision blocking mode is introduced, called *behind*. It will accompany the existing vision mode which will be renamed to *complete*.\n
    \n
    When *behind* mode is active, the shape marked as vision blocking will be rendered as if it’s not a vision blocking shape, but everything behind it will be fully obscured. This will for example allow you to have a tree trunk that is vision blocking, but still show the players what they are looking at (i.e. a tree trunk).\n
    \n
    Notes Overhaul\n
    --------------\n
    \n
    There is no longer a difference between shape notes and campaign notes. Notes are now a single concept, can be attached to shapes and managed through a new UI element called the Note Manager.\n
    \n
    It’s now possible to share certain notes to other users with granular access rights, eg. you can give *view* access to all players when they retrieve an item, or give a particular player a private note that only they can *view* and *edit*.\n
    \n
    For a full overview of the new note system, check the [notes documentation](https://www.planarally.io/docs/game/notes/).\n
    \n
    Asset Drop Ratio\n
    ----------------\n
    \n
    Defines how assets should be scaled when dropped on the map. A drop ratio of 1 is the default, it means the asset will resize purely on it’s specified dimensions, eg. goblin_1x1 will take up 1 grid cell even if it represents 10ft, whereas a drop ratio of 0.5 will resize basilisk_2x2 to 1x1.\n
    \n
    > *Context: Previously, assets would auto scale when dropped onto the grid if they have a dimension in their name, eg. goblin_1x1 would fit exactly 1 grid cell, dragon_3x3 would be resized to 3 by 3 grid cells. This was using a method based on the 5ft-system to automatically adjust this when a location had a bigger size (eg. 10ft maps would automatically make goblin_2x2 fit in 1 cell). This however would break anything that wasn’t using the 5ft-system.*\n
    \n
    Dice History Improvements\n
    -------------------------\n
    \n
    The dice history will now show who rolled the dice (it was previously only shown on hover) and contains more details on the specific roll instead of only showing the final result.
    """
  +type: "link"
  +lang: "en"
  +isOc: false
  +hasEmbed: false
  +commentCount: 3
  +favouriteCount: 47
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1729060583 {#1861
    date: 2024-10-16 08:36:23.0 +02:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#1929 …}
  +votes: Doctrine\ORM\PersistentCollection {#1893 …}
  +reports: Doctrine\ORM\PersistentCollection {#2420 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1397 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1371 …}
  +badges: Doctrine\ORM\PersistentCollection {#1379 …}
  +children: []
  -id: 33449
  -titleTs: "'2024.1':2 'planar':1 'releas':3"
  -bodyTs: "'/2024.1':51 '/blog/release-2024.1/).':38 '/docs/game/notes/).':235 '/kruptein/planarally/releases/':50 '/kruptein/planarally/releases/tag/2024.1)':54 '0.5':289 '1':254,276,321,367 '10ft':283,358 '1x1':272,295,317 '2x2':293,364 '3':330,332 '3x3':325 '5ft':344,380 '5ft-system':343,379 'access':189,196 'accompani':69 'activ':84 'adjust':348 'allow':115 'anyth':373 'asset':236,241,261,298 'attach':162 'auto':300 'automat':347,361 'avail':44 'base':340 'basilisk':292 'behind':66,81,105 'bigger':355 'block':56,61,90,101,125 'blog':34 'break':372 'call':65,172 'campaign':152 'cell':278,323,334,368 'certain':182 'check':229 'compil':27 'complet':79 'concept':159 'contain':403 'context':296 'default':257 'defin':239 'detail':405 'dice':382,386,394 'differ':147 'dimens':269,311 'document':232 'dragon':324 'drop':237,246,251,286,303 'edit':219 'eg':191,270,315,357 'element':171 'even':279 'everyth':104 'exact':320 'exampl':114 'exist':71 'features/changes':31 'final':415 'fit':319,365 'full':40,222 'fulli':109 'game':23 'github':47 'github.com':49,53 'github.com/kruptein/planarally/releases/':48 'github.com/kruptein/planarally/releases/tag/2024.1)':52 'give':194,206 'goblin':271,316,363 'granular':188 'grid':277,306,322,333 'heard':6 'histori':383,387 'host':17 'hover':401 'howev':370 'i.e':136 'import':30 'improv':384 'instead':410 'introduc':64 'item':204 'locat':352 'longer':145 'look':134 'make':362 'manag':166,175 'map':249,359 'mark':87 'mean':259 'method':339 'mode':62,73,82 'name':314 'never':5 'new':59,169,226 'note':42,140,150,153,154,174,183,212,227,231 'obscur':110 'onto':304 'open':13 'open-sourc':12 'overhaul':141 'overview':223 'particular':208 'planar':9 'player':130,199,209 'possibl':179 'post':35 'previous':297,397 'privat':211 'pure':264 'ratio':238,252,287 'releas':41 'renam':77 'render':93 'repres':282 'resiz':263,291,328 'result':416 'retriev':202 'right':190 'roll':392,409 'scale':244,301 'self':16 'self-host':15 'shape':86,102,149,164 'share':181 'show':128,390,413 'shown':399 'singl':158 'size':356 'sourc':14 'specif':408 'specifi':268 'still':127 'system':228,345,381 'tabletop':19 'take':274 'tree':120,138 'trunk':121,139 'ttrpg':22 'ui':170 'updat':57 'use':337,377 'user':186 've':26 'view':195,217 'virtual':18 'vision':55,60,72,89,100,124 'vtt':20 'wasn':375 'wherea':284 'would':299,318,326,360,371 'www.planarally.io':37,234 'www.planarally.io/blog/release-2024.1/).':36 'www.planarally.io/docs/game/notes/).':233"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1706456482
  +visibility: "visible             "
  +apId: "https://lemmy.world/post/11249384"
  +editedAt: null
  +createdAt: DateTimeImmutable @1706370082 {#75
    date: 2024-01-27 16:41:22.0 +01:00
  }
}
"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
App\Entity\Entry {#1846
  +user: Proxies\__CG__\App\Entity\User {#1899 …}
  +magazine: App\Entity\Magazine {#289
    +icon: Proxies\__CG__\App\Entity\Image {#270 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#299
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#261 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#257 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#246 …}
    +entries: Doctrine\ORM\PersistentCollection {#204 …}
    +posts: Doctrine\ORM\PersistentCollection {#162 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#224 …}
    +bans: Doctrine\ORM\PersistentCollection {#141 …}
    +reports: Doctrine\ORM\PersistentCollection {#127 …}
    +badges: Doctrine\ORM\PersistentCollection {#105 …}
    +logs: Doctrine\ORM\PersistentCollection {#95 …}
    +awards: Doctrine\ORM\PersistentCollection {#84 …}
    +categories: Doctrine\ORM\PersistentCollection {#71 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#293
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#292
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +image: Proxies\__CG__\App\Entity\Image {#1889 …}
  +domain: Proxies\__CG__\App\Entity\Domain {#1913 …}
  +slug: "PlanarAlly-2024-1-Release"
  +title: "PlanarAlly 2024.1 Release!"
  +url: "https://github.com/Kruptein/PlanarAlly/releases/tag/2024.1"
  +body: """
    For those that have never heard of it, PlanarAlly is an open-source self-hosted virtual tabletop (VTT) for TTRPG games. Here I’ve compiled the most important features/changes from their [blog post](https://www.planarally.io/blog/release-2024.1/). The full release notes are available on their GitHub: [github.com/Kruptein/PlanarAlly/releases/…/2024.1](https://github.com/Kruptein/PlanarAlly/releases/tag/2024.1)\n
    \n
    Vision Blocking Update\n
    ----------------------\n
    \n
    A new vision blocking mode is introduced, called *behind*. It will accompany the existing vision mode which will be renamed to *complete*.\n
    \n
    When *behind* mode is active, the shape marked as vision blocking will be rendered as if it’s not a vision blocking shape, but everything behind it will be fully obscured. This will for example allow you to have a tree trunk that is vision blocking, but still show the players what they are looking at (i.e. a tree trunk).\n
    \n
    Notes Overhaul\n
    --------------\n
    \n
    There is no longer a difference between shape notes and campaign notes. Notes are now a single concept, can be attached to shapes and managed through a new UI element called the Note Manager.\n
    \n
    It’s now possible to share certain notes to other users with granular access rights, eg. you can give *view* access to all players when they retrieve an item, or give a particular player a private note that only they can *view* and *edit*.\n
    \n
    For a full overview of the new note system, check the [notes documentation](https://www.planarally.io/docs/game/notes/).\n
    \n
    Asset Drop Ratio\n
    ----------------\n
    \n
    Defines how assets should be scaled when dropped on the map. A drop ratio of 1 is the default, it means the asset will resize purely on it’s specified dimensions, eg. goblin_1x1 will take up 1 grid cell even if it represents 10ft, whereas a drop ratio of 0.5 will resize basilisk_2x2 to 1x1.\n
    \n
    > *Context: Previously, assets would auto scale when dropped onto the grid if they have a dimension in their name, eg. goblin_1x1 would fit exactly 1 grid cell, dragon_3x3 would be resized to 3 by 3 grid cells. This was using a method based on the 5ft-system to automatically adjust this when a location had a bigger size (eg. 10ft maps would automatically make goblin_2x2 fit in 1 cell). This however would break anything that wasn’t using the 5ft-system.*\n
    \n
    Dice History Improvements\n
    -------------------------\n
    \n
    The dice history will now show who rolled the dice (it was previously only shown on hover) and contains more details on the specific roll instead of only showing the final result.
    """
  +type: "link"
  +lang: "en"
  +isOc: false
  +hasEmbed: false
  +commentCount: 3
  +favouriteCount: 47
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1729060583 {#1861
    date: 2024-10-16 08:36:23.0 +02:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#1929 …}
  +votes: Doctrine\ORM\PersistentCollection {#1893 …}
  +reports: Doctrine\ORM\PersistentCollection {#2420 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1397 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1371 …}
  +badges: Doctrine\ORM\PersistentCollection {#1379 …}
  +children: []
  -id: 33449
  -titleTs: "'2024.1':2 'planar':1 'releas':3"
  -bodyTs: "'/2024.1':51 '/blog/release-2024.1/).':38 '/docs/game/notes/).':235 '/kruptein/planarally/releases/':50 '/kruptein/planarally/releases/tag/2024.1)':54 '0.5':289 '1':254,276,321,367 '10ft':283,358 '1x1':272,295,317 '2x2':293,364 '3':330,332 '3x3':325 '5ft':344,380 '5ft-system':343,379 'access':189,196 'accompani':69 'activ':84 'adjust':348 'allow':115 'anyth':373 'asset':236,241,261,298 'attach':162 'auto':300 'automat':347,361 'avail':44 'base':340 'basilisk':292 'behind':66,81,105 'bigger':355 'block':56,61,90,101,125 'blog':34 'break':372 'call':65,172 'campaign':152 'cell':278,323,334,368 'certain':182 'check':229 'compil':27 'complet':79 'concept':159 'contain':403 'context':296 'default':257 'defin':239 'detail':405 'dice':382,386,394 'differ':147 'dimens':269,311 'document':232 'dragon':324 'drop':237,246,251,286,303 'edit':219 'eg':191,270,315,357 'element':171 'even':279 'everyth':104 'exact':320 'exampl':114 'exist':71 'features/changes':31 'final':415 'fit':319,365 'full':40,222 'fulli':109 'game':23 'github':47 'github.com':49,53 'github.com/kruptein/planarally/releases/':48 'github.com/kruptein/planarally/releases/tag/2024.1)':52 'give':194,206 'goblin':271,316,363 'granular':188 'grid':277,306,322,333 'heard':6 'histori':383,387 'host':17 'hover':401 'howev':370 'i.e':136 'import':30 'improv':384 'instead':410 'introduc':64 'item':204 'locat':352 'longer':145 'look':134 'make':362 'manag':166,175 'map':249,359 'mark':87 'mean':259 'method':339 'mode':62,73,82 'name':314 'never':5 'new':59,169,226 'note':42,140,150,153,154,174,183,212,227,231 'obscur':110 'onto':304 'open':13 'open-sourc':12 'overhaul':141 'overview':223 'particular':208 'planar':9 'player':130,199,209 'possibl':179 'post':35 'previous':297,397 'privat':211 'pure':264 'ratio':238,252,287 'releas':41 'renam':77 'render':93 'repres':282 'resiz':263,291,328 'result':416 'retriev':202 'right':190 'roll':392,409 'scale':244,301 'self':16 'self-host':15 'shape':86,102,149,164 'share':181 'show':128,390,413 'shown':399 'singl':158 'size':356 'sourc':14 'specif':408 'specifi':268 'still':127 'system':228,345,381 'tabletop':19 'take':274 'tree':120,138 'trunk':121,139 'ttrpg':22 'ui':170 'updat':57 'use':337,377 'user':186 've':26 'view':195,217 'virtual':18 'vision':55,60,72,89,100,124 'vtt':20 'wasn':375 'wherea':284 'would':299,318,326,360,371 'www.planarally.io':37,234 'www.planarally.io/blog/release-2024.1/).':36 'www.planarally.io/docs/game/notes/).':233"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1706456482
  +visibility: "visible             "
  +apId: "https://lemmy.world/post/11249384"
  +editedAt: null
  +createdAt: DateTimeImmutable @1706370082 {#75
    date: 2024-01-27 16:41:22.0 +01:00
  }
}
"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
App\Entity\Entry {#1846
  +user: Proxies\__CG__\App\Entity\User {#1899 …}
  +magazine: App\Entity\Magazine {#289
    +icon: Proxies\__CG__\App\Entity\Image {#270 …}
    +name: "selfhosted@lemmy.world"
    +title: "selfhosted"
    +description: """
      A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
      \n
      Rules:\n
      \n
      - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
      - No spam posting.\n
      - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
      - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
      - No trolling.\n
      \n
      Resources:\n
      \n
      - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
      - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
      - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
      \n
      > Any issues on the community? Report it using the report flag.\n
      \n
      > Questions? DM the mods!
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 222
    +entryCommentCount: 3916
    +postCount: 0
    +postCommentCount: 0
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729582735 {#299
      date: 2024-10-22 09:38:55.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#261 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#257 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#246 …}
    +entries: Doctrine\ORM\PersistentCollection {#204 …}
    +posts: Doctrine\ORM\PersistentCollection {#162 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#224 …}
    +bans: Doctrine\ORM\PersistentCollection {#141 …}
    +reports: Doctrine\ORM\PersistentCollection {#127 …}
    +badges: Doctrine\ORM\PersistentCollection {#105 …}
    +logs: Doctrine\ORM\PersistentCollection {#95 …}
    +awards: Doctrine\ORM\PersistentCollection {#84 …}
    +categories: Doctrine\ORM\PersistentCollection {#71 …}
    -id: 120
    +apId: "selfhosted@lemmy.world"
    +apProfileId: "https://lemmy.world/c/selfhosted"
    +apPublicUrl: "https://lemmy.world/c/selfhosted"
    +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
    +apInboxUrl: "https://lemmy.world/inbox"
    +apDomain: "lemmy.world"
    +apPreferredUsername: "selfhosted"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1703473826 {#293
      date: 2023-12-25 04:10:26.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1703473826 {#292
      date: 2023-12-25 04:10:26.0 +01:00
    }
  }
  +image: Proxies\__CG__\App\Entity\Image {#1889 …}
  +domain: Proxies\__CG__\App\Entity\Domain {#1913 …}
  +slug: "PlanarAlly-2024-1-Release"
  +title: "PlanarAlly 2024.1 Release!"
  +url: "https://github.com/Kruptein/PlanarAlly/releases/tag/2024.1"
  +body: """
    For those that have never heard of it, PlanarAlly is an open-source self-hosted virtual tabletop (VTT) for TTRPG games. Here I’ve compiled the most important features/changes from their [blog post](https://www.planarally.io/blog/release-2024.1/). The full release notes are available on their GitHub: [github.com/Kruptein/PlanarAlly/releases/…/2024.1](https://github.com/Kruptein/PlanarAlly/releases/tag/2024.1)\n
    \n
    Vision Blocking Update\n
    ----------------------\n
    \n
    A new vision blocking mode is introduced, called *behind*. It will accompany the existing vision mode which will be renamed to *complete*.\n
    \n
    When *behind* mode is active, the shape marked as vision blocking will be rendered as if it’s not a vision blocking shape, but everything behind it will be fully obscured. This will for example allow you to have a tree trunk that is vision blocking, but still show the players what they are looking at (i.e. a tree trunk).\n
    \n
    Notes Overhaul\n
    --------------\n
    \n
    There is no longer a difference between shape notes and campaign notes. Notes are now a single concept, can be attached to shapes and managed through a new UI element called the Note Manager.\n
    \n
    It’s now possible to share certain notes to other users with granular access rights, eg. you can give *view* access to all players when they retrieve an item, or give a particular player a private note that only they can *view* and *edit*.\n
    \n
    For a full overview of the new note system, check the [notes documentation](https://www.planarally.io/docs/game/notes/).\n
    \n
    Asset Drop Ratio\n
    ----------------\n
    \n
    Defines how assets should be scaled when dropped on the map. A drop ratio of 1 is the default, it means the asset will resize purely on it’s specified dimensions, eg. goblin_1x1 will take up 1 grid cell even if it represents 10ft, whereas a drop ratio of 0.5 will resize basilisk_2x2 to 1x1.\n
    \n
    > *Context: Previously, assets would auto scale when dropped onto the grid if they have a dimension in their name, eg. goblin_1x1 would fit exactly 1 grid cell, dragon_3x3 would be resized to 3 by 3 grid cells. This was using a method based on the 5ft-system to automatically adjust this when a location had a bigger size (eg. 10ft maps would automatically make goblin_2x2 fit in 1 cell). This however would break anything that wasn’t using the 5ft-system.*\n
    \n
    Dice History Improvements\n
    -------------------------\n
    \n
    The dice history will now show who rolled the dice (it was previously only shown on hover) and contains more details on the specific roll instead of only showing the final result.
    """
  +type: "link"
  +lang: "en"
  +isOc: false
  +hasEmbed: false
  +commentCount: 3
  +favouriteCount: 47
  +score: 0
  +isAdult: false
  +sticky: false
  +lastActive: DateTime @1729060583 {#1861
    date: 2024-10-16 08:36:23.0 +02:00
  }
  +ip: null
  +adaAmount: 0
  +tags: null
  +mentions: null
  +comments: Doctrine\ORM\PersistentCollection {#1929 …}
  +votes: Doctrine\ORM\PersistentCollection {#1893 …}
  +reports: Doctrine\ORM\PersistentCollection {#2420 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1397 …}
  +notifications: Doctrine\ORM\PersistentCollection {#1371 …}
  +badges: Doctrine\ORM\PersistentCollection {#1379 …}
  +children: []
  -id: 33449
  -titleTs: "'2024.1':2 'planar':1 'releas':3"
  -bodyTs: "'/2024.1':51 '/blog/release-2024.1/).':38 '/docs/game/notes/).':235 '/kruptein/planarally/releases/':50 '/kruptein/planarally/releases/tag/2024.1)':54 '0.5':289 '1':254,276,321,367 '10ft':283,358 '1x1':272,295,317 '2x2':293,364 '3':330,332 '3x3':325 '5ft':344,380 '5ft-system':343,379 'access':189,196 'accompani':69 'activ':84 'adjust':348 'allow':115 'anyth':373 'asset':236,241,261,298 'attach':162 'auto':300 'automat':347,361 'avail':44 'base':340 'basilisk':292 'behind':66,81,105 'bigger':355 'block':56,61,90,101,125 'blog':34 'break':372 'call':65,172 'campaign':152 'cell':278,323,334,368 'certain':182 'check':229 'compil':27 'complet':79 'concept':159 'contain':403 'context':296 'default':257 'defin':239 'detail':405 'dice':382,386,394 'differ':147 'dimens':269,311 'document':232 'dragon':324 'drop':237,246,251,286,303 'edit':219 'eg':191,270,315,357 'element':171 'even':279 'everyth':104 'exact':320 'exampl':114 'exist':71 'features/changes':31 'final':415 'fit':319,365 'full':40,222 'fulli':109 'game':23 'github':47 'github.com':49,53 'github.com/kruptein/planarally/releases/':48 'github.com/kruptein/planarally/releases/tag/2024.1)':52 'give':194,206 'goblin':271,316,363 'granular':188 'grid':277,306,322,333 'heard':6 'histori':383,387 'host':17 'hover':401 'howev':370 'i.e':136 'import':30 'improv':384 'instead':410 'introduc':64 'item':204 'locat':352 'longer':145 'look':134 'make':362 'manag':166,175 'map':249,359 'mark':87 'mean':259 'method':339 'mode':62,73,82 'name':314 'never':5 'new':59,169,226 'note':42,140,150,153,154,174,183,212,227,231 'obscur':110 'onto':304 'open':13 'open-sourc':12 'overhaul':141 'overview':223 'particular':208 'planar':9 'player':130,199,209 'possibl':179 'post':35 'previous':297,397 'privat':211 'pure':264 'ratio':238,252,287 'releas':41 'renam':77 'render':93 'repres':282 'resiz':263,291,328 'result':416 'retriev':202 'right':190 'roll':392,409 'scale':244,301 'self':16 'self-host':15 'shape':86,102,149,164 'share':181 'show':128,390,413 'shown':399 'singl':158 'size':356 'sourc':14 'specif':408 'specifi':268 'still':127 'system':228,345,381 'tabletop':19 'take':274 'tree':120,138 'trunk':121,139 'ttrpg':22 'ui':170 'updat':57 'use':337,377 'user':186 've':26 'view':195,217 'virtual':18 'vision':55,60,72,89,100,124 'vtt':20 'wasn':375 'wherea':284 'would':299,318,326,360,371 'www.planarally.io':37,234 'www.planarally.io/blog/release-2024.1/).':36 'www.planarally.io/docs/game/notes/).':233"
  +cross: false
  +upVotes: 0
  +downVotes: 0
  +ranking: 1706456482
  +visibility: "visible             "
  +apId: "https://lemmy.world/post/11249384"
  +editedAt: null
  +createdAt: DateTimeImmutable @1706370082 {#75
    date: 2024-01-27 16:41:22.0 +01:00
  }
}
"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 edit
App\Entity\Magazine {#289
  +icon: Proxies\__CG__\App\Entity\Image {#270 …}
  +name: "selfhosted@lemmy.world"
  +title: "selfhosted"
  +description: """
    A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don’t control.\n
    \n
    Rules:\n
    \n
    - Be civil: we’re here to support and learn from one another. Insults won’t be tolerated. Flame wars are frowned upon.\n
    - No spam posting.\n
    - Don’t duplicate the full text of your blog or github here. Just post the link for folks to click.\n
    - Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).\n
    - No trolling.\n
    \n
    Resources:\n
    \n
    - [awesome-selfhosted software](https://github.com/awesome-selfhosted/awesome-selfhosted)\n
    - [awesome-sysadmin](https://github.com/awesome-foss/awesome-sysadmin) resources\n
    - [Self-Hosted Podcast from Jupiter Broadcasting](https://selfhosted.show)\n
    \n
    > Any issues on the community? Report it using the report flag.\n
    \n
    > Questions? DM the mods!
    """
  +rules: null
  +subscriptionsCount: 1
  +entryCount: 222
  +entryCommentCount: 3916
  +postCount: 0
  +postCommentCount: 0
  +isAdult: false
  +customCss: null
  +lastActive: DateTime @1729582735 {#299
    date: 2024-10-22 09:38:55.0 +02:00
  }
  +markedForDeletionAt: null
  +tags: null
  +moderators: Doctrine\ORM\PersistentCollection {#261 …}
  +ownershipRequests: Doctrine\ORM\PersistentCollection {#257 …}
  +moderatorRequests: Doctrine\ORM\PersistentCollection {#246 …}
  +entries: Doctrine\ORM\PersistentCollection {#204 …}
  +posts: Doctrine\ORM\PersistentCollection {#162 …}
  +subscriptions: Doctrine\ORM\PersistentCollection {#224 …}
  +bans: Doctrine\ORM\PersistentCollection {#141 …}
  +reports: Doctrine\ORM\PersistentCollection {#127 …}
  +badges: Doctrine\ORM\PersistentCollection {#105 …}
  +logs: Doctrine\ORM\PersistentCollection {#95 …}
  +awards: Doctrine\ORM\PersistentCollection {#84 …}
  +categories: Doctrine\ORM\PersistentCollection {#71 …}
  -id: 120
  +apId: "selfhosted@lemmy.world"
  +apProfileId: "https://lemmy.world/c/selfhosted"
  +apPublicUrl: "https://lemmy.world/c/selfhosted"
  +apFollowersUrl: "https://lemmy.world/c/selfhosted/followers"
  +apInboxUrl: "https://lemmy.world/inbox"
  +apDomain: "lemmy.world"
  +apPreferredUsername: "selfhosted"
  +apDiscoverable: true
  +apManuallyApprovesFollowers: null
  +privateKey: null
  +publicKey: null
  +apFetchedAt: DateTime @1703473826 {#293
    date: 2023-12-25 04:10:26.0 +01:00
  }
  +apDeletedAt: null
  +apTimeoutAt: null
  +visibility: "visible             "
  +createdAt: DateTimeImmutable @1703473826 {#292
    date: 2023-12-25 04:10:26.0 +01: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