From 90facc46a9b673b07e5b34ab1b41a5c82fff654a Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Tue, 16 Feb 2010 08:56:34 -0800 Subject: [PATCH] Refactor code for updating storage location file permissions into a Role. --- lib/WebGUI/Asset/File.pm | 20 +------ lib/WebGUI/Asset/Post.pm | 22 +------ lib/WebGUI/Asset/Wobject/Article.pm | 21 +------ lib/WebGUI/AssetRole/SetStoragePermissions.pm | 57 +++++++++++++++++++ 4 files changed, 60 insertions(+), 60 deletions(-) create mode 100644 lib/WebGUI/AssetRole/SetStoragePermissions.pm diff --git a/lib/WebGUI/Asset/File.pm b/lib/WebGUI/Asset/File.pm index a1f776b80..83aa18ee8 100644 --- a/lib/WebGUI/Asset/File.pm +++ b/lib/WebGUI/Asset/File.pm @@ -55,26 +55,8 @@ property templateId => ( hoverHelp => ['file template description', 'Asset_File'], namespace => "FileAsset", ); -sub _set_ownerUserId { - my ($self, $new, $old) = @_; - if ($new ne $old) { - $self->getStorageLocation->setPrivileges($self->ownerUserId, $self->groupIdView, $self->groupIdEdit); - } -} -sub _set_groupIdView { - my ($self, $new, $old) = @_; - if ($new ne $old) { - $self->getStorageLocation->setPrivileges($self->ownerUserId, $self->groupIdView, $self->groupIdEdit); - } -} - -sub _set_groupIdEdit { - my ($self, $new, $old) = @_; - if ($new ne $old) { - $self->getStorageLocation->setPrivileges($self->ownerUserId, $self->groupIdView, $self->groupIdEdit); - } -} +with 'WebGUI::AssetRole::SetStoragePermissions'; use WebGUI::Storage; use WebGUI::SQL; diff --git a/lib/WebGUI/Asset/Post.pm b/lib/WebGUI/Asset/Post.pm index 2d78ec028..a4d30037d 100644 --- a/lib/WebGUI/Asset/Post.pm +++ b/lib/WebGUI/Asset/Post.pm @@ -75,27 +75,7 @@ property content => ( with 'WebGUI::AssetRole::AlwaysHidden'; -sub _set_ownerUserId { - my ($self, $new, $old) = @_; - if ($new ne $old) { - $self->getStorageLocation->setPrivileges($self->ownerUserId, $self->groupIdView, $self->groupIdEdit); - } -} - -sub _set_groupIdView { - my ($self, $new, $old) = @_; - if ($new ne $old) { - $self->getStorageLocation->setPrivileges($self->ownerUserId, $self->groupIdView, $self->groupIdEdit); - } -} - -sub _set_groupIdEdit { - my ($self, $new, $old) = @_; - if ($new ne $old) { - $self->getStorageLocation->setPrivileges($self->ownerUserId, $self->groupIdView, $self->groupIdEdit); - } -} - +with 'WebGUI::AssetRole::SetStoragePermissions'; use WebGUI::Asset::Template; diff --git a/lib/WebGUI/Asset/Wobject/Article.pm b/lib/WebGUI/Asset/Wobject/Article.pm index 3c07a9a01..d092afa7c 100644 --- a/lib/WebGUI/Asset/Wobject/Article.pm +++ b/lib/WebGUI/Asset/Wobject/Article.pm @@ -72,27 +72,8 @@ sub _set_storageId { sub _storageid_deleteFileUrl { return shift->session->url->page("func=deleteFile;filename="); } -sub _set_ownerUserId { - my ($self, $new, $old) = @_; - if ($new ne $old) { - $self->getStorageLocation->setPrivileges($self->ownerUserId, $self->groupIdView, $self->groupIdEdit); - } -} - -sub _set_groupIdView { - my ($self, $new, $old) = @_; - if ($new ne $old) { - $self->getStorageLocation->setPrivileges($self->ownerUserId, $self->groupIdView, $self->groupIdEdit); - } -} - -sub _set_groupIdEdit { - my ($self, $new, $old) = @_; - if ($new ne $old) { - $self->getStorageLocation->setPrivileges($self->ownerUserId, $self->groupIdView, $self->groupIdEdit); - } -} +with 'WebGUI::AssetRole::SetStoragePermissions'; use WebGUI::Storage; use WebGUI::HTML; diff --git a/lib/WebGUI/AssetRole/SetStoragePermissions.pm b/lib/WebGUI/AssetRole/SetStoragePermissions.pm new file mode 100644 index 000000000..25cfddf21 --- /dev/null +++ b/lib/WebGUI/AssetRole/SetStoragePermissions.pm @@ -0,0 +1,57 @@ +package WebGUI::AssetRole::SetStoragePermissions; + +=head1 LEGAL + + ------------------------------------------------------------------- + WebGUI is Copyright 2001-2009 Plain Black Corporation. + ------------------------------------------------------------------- + Please read the legal notices (docs/legal.txt) and the license + (docs/license.txt) that came with this distribution before using + this software. + ------------------------------------------------------------------- + http://www.plainblack.com info@plainblack.com + ------------------------------------------------------------------- + +=cut + +=head1 NAME + +Package WebGUI::AssetRole::SetStoragePermissions + +=head1 DESCRIPTION + +Provide methods for the triggers on ownerUserId, groupIdEdit and groupIdView that update +the file permissions on storage locations for an Asset. + +=head1 SYNOPSIS + +with WebGUI::AssetRole::SetStoragePermissions; + +=cut + +use Moose::Role; + +sub _set_ownerUserId { + my ($self, $new, $old) = @_; + if ($new ne $old) { + $self->getStorageLocation->setPrivileges($self->ownerUserId, $self->groupIdView, $self->groupIdEdit); + } +} + +sub _set_groupIdView { + my ($self, $new, $old) = @_; + if ($new ne $old) { + $self->getStorageLocation->setPrivileges($self->ownerUserId, $self->groupIdView, $self->groupIdEdit); + } +} + +sub _set_groupIdEdit { + my ($self, $new, $old) = @_; + if ($new ne $old) { + $self->getStorageLocation->setPrivileges($self->ownerUserId, $self->groupIdView, $self->groupIdEdit); + } +} + + + +1;