Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F1100273
DiffusionCommitActionTransaction.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
DiffusionCommitActionTransaction.php
View Options
<?php
abstract
class
DiffusionCommitActionTransaction
extends
DiffusionCommitTransactionType
{
final
public
function
getCommitActionKey
()
{
return
$this
->
getPhobjectClassConstant
(
'ACTIONKEY'
,
32
);
}
public
function
isActionAvailable
(
$object
,
PhabricatorUser
$viewer
)
{
try
{
$this
->
validateAction
(
$object
,
$viewer
);
return
true
;
}
catch
(
Exception
$ex
)
{
return
false
;
}
}
abstract
protected
function
validateAction
(
$object
,
PhabricatorUser
$viewer
);
abstract
protected
function
getCommitActionLabel
();
public
function
getCommandKeyword
()
{
return
null
;
}
public
function
getCommandAliases
()
{
return
array
();
}
public
function
getCommandSummary
()
{
return
null
;
}
protected
function
getCommitActionOrder
()
{
return
1000
;
}
public
function
getCommitActionOrderVector
()
{
return
id
(
new
PhutilSortVector
())
->
addInt
(
$this
->
getCommitActionOrder
());
}
protected
function
getCommitActionGroupKey
()
{
return
DiffusionCommitEditEngine
::
ACTIONGROUP_COMMIT
;
}
protected
function
getCommitActionDescription
()
{
return
null
;
}
public
static
function
loadAllActions
()
{
return
id
(
new
PhutilClassMapQuery
())
->
setAncestorClass
(
__CLASS__
)
->
setUniqueMethod
(
'getCommitActionKey'
)
->
execute
();
}
protected
function
isViewerCommitAuthor
(
PhabricatorRepositoryCommit
$commit
,
PhabricatorUser
$viewer
)
{
if
(!
$viewer
->
getPHID
())
{
return
false
;
}
return
(
$viewer
->
getPHID
()
===
$commit
->
getAuthorPHID
());
}
public
function
newEditField
(
PhabricatorRepositoryCommit
$commit
,
PhabricatorUser
$viewer
)
{
$field
=
id
(
new
PhabricatorApplyEditField
())
->
setKey
(
$this
->
getCommitActionKey
())
->
setTransactionType
(
$this
->
getTransactionTypeConstant
())
->
setValue
(
true
);
if
(
$this
->
isActionAvailable
(
$commit
,
$viewer
))
{
$label
=
$this
->
getCommitActionLabel
();
if
(
$label
!==
null
)
{
$field
->
setCommentActionLabel
(
$label
);
$description
=
$this
->
getCommitActionDescription
();
$field
->
setActionDescription
(
$description
);
$group_key
=
$this
->
getCommitActionGroupKey
();
$field
->
setCommentActionGroupKey
(
$group_key
);
$field
->
setActionConflictKey
(
'commit.action'
);
}
}
return
$field
;
}
public
function
validateTransactions
(
$object
,
array
$xactions
)
{
$errors
=
array
();
$actor
=
$this
->
getActor
();
$action_exception
=
null
;
try
{
$this
->
validateAction
(
$object
,
$actor
);
}
catch
(
Exception
$ex
)
{
$action_exception
=
$ex
;
}
foreach
(
$xactions
as
$xaction
)
{
if
(
$action_exception
)
{
$errors
[]
=
$this
->
newInvalidError
(
$action_exception
->
getMessage
(),
$xaction
);
}
}
return
$errors
;
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Mon, Jun 30, 2:23 PM (2 d)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
274140
Default Alt Text
DiffusionCommitActionTransaction.php (2 KB)
Attached To
Mode
rP Phorge
Attached
Detach File
Event Timeline
Log In to Comment