Mailing List Archive

rt branch 5.0/default-catalog-on-asset-create created. rt-5.0.5-163-gbdbdf0cbea
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "rt".

The branch, 5.0/default-catalog-on-asset-create has been created
at bdbdf0cbea4300b397a634370df4b4a1ede87612 (commit)

- Log -----------------------------------------------------------------
commit bdbdf0cbea4300b397a634370df4b4a1ede87612
Author: sunnavy <sunnavy@bestpractical.com>
Date: Tue Mar 12 10:16:30 2024 -0400

Load the first catalog current user can create assets in on asset create page

Previously if current user can't create assets on the default catalog(either
$DefaultCatalog or the first catalog they can see), they would get the
"Permission Denied" error directly and couldn't pick catalogs at all. This
commit tries a bit harder to find a catalog current user can create assets
in, before returning the "Permission Denied" error.

diff --git a/share/html/Asset/Create.html b/share/html/Asset/Create.html
index 5042609cf5..db69fd3c31 100644
--- a/share/html/Asset/Create.html
+++ b/share/html/Asset/Create.html
@@ -110,6 +110,19 @@ $Catalog => undef
my $asset = RT::Asset->new( $session{CurrentUser} );
my $catalog = LoadDefaultCatalog( $Catalog || '' );

+if ( !$Catalog && ( !$catalog->id || !$catalog->CurrentUserHasRight('CreateAsset') ) ) {
+ my $cache_key = SetObjectSessionCache(
+ ObjectType => 'Catalog',
+ CheckRight => 'CreateAsset',
+ CacheNeedsUpdate => RT::Catalog->CacheNeedsUpdate,
+ ShowAll => 0,
+ );
+
+ if ( $session{$cache_key}{objects}[0] ) {
+ $catalog->Load( $session{$cache_key}{objects}[0]->{Id} );
+ }
+}
+
Abort(loc("Unable to find catalog '[_1]'", $Catalog))
unless $catalog->id;


-----------------------------------------------------------------------


hooks/post-receive
--
rt
_______________________________________________
rt-commit mailing list
rt-commit@lists.bestpractical.com
https://lists.bestpractical.com/mailman/listinfo/rt-commit