mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-18 19:40:55 +01:00
48 lines
1.3 KiB
PHP
48 lines
1.3 KiB
PHP
|
<?php
|
||
|
|
||
|
$table = new PhrictionDocument();
|
||
|
$conn_w = $table->establishConnection('w');
|
||
|
|
||
|
echo "Populating Phriction policies.\n";
|
||
|
|
||
|
$default_view_policy = PhabricatorPolicies::getMostOpenPolicy();
|
||
|
$default_edit_policy = PhabricatorPolicies::POLICY_USER;
|
||
|
|
||
|
foreach (new LiskMigrationIterator($table) as $doc) {
|
||
|
$id = $doc->getID();
|
||
|
|
||
|
if ($doc->getViewPolicy() && $doc->getEditPolicy()) {
|
||
|
echo "Skipping doc $id; already has policy set.\n";
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
// project documents get the project policy
|
||
|
if (PhrictionDocument::isProjectSlug($doc->getSlug())) {
|
||
|
|
||
|
$project_slug =
|
||
|
PhrictionDocument::getProjectSlugIdentifier($doc->getSlug());
|
||
|
$project_slugs = array($project_slug);
|
||
|
$project = id(new PhabricatorProjectQuery())
|
||
|
->setViewer(PhabricatorUser::getOmnipotentUser())
|
||
|
->withPhrictionSlugs($project_slugs)
|
||
|
->executeOne();
|
||
|
|
||
|
$project_name = $project->getName();
|
||
|
echo "Migrating doc $id to project policy $project_name...\n";
|
||
|
$doc->setViewPolicy($project->getViewPolicy());
|
||
|
$doc->setEditPolicy($project->getEditPolicy());
|
||
|
$doc->save();
|
||
|
|
||
|
// non-project documents get the most open policy possible
|
||
|
} else {
|
||
|
|
||
|
echo "Migrating doc $id to default install policy...\n";
|
||
|
$doc->setViewPolicy($default_view_policy);
|
||
|
$doc->setEditPolicy($default_edit_policy);
|
||
|
$doc->save();
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
echo "Done.\n";
|