Skip to content
Snippets Groups Projects
Commit d9a6fa50 authored by Rasmus Fuhse's avatar Rasmus Fuhse
Browse files

re #23

parent abfde137
No related branches found
No related tags found
No related merge requests found
......@@ -41,7 +41,7 @@ class PluginMarket extends StudIPPlugin implements SystemPlugin, HomepagePlugin
}
}
}
if ($GLOBALS['perm']->have_perm("root")) {
if (RolePersistence::isAssignedRole($GLOBALS['user']->id, "Pluginbeauftragter")) {
$approving = new Navigation(_("Qualittssicherung"), PluginEngine::getURL($this, array(), "approving/overview"));
$top->addSubNavigation("approving", $approving);
}
......
......@@ -51,9 +51,16 @@ class MarketPlugin extends SimpleORMap {
public function requestReview() {
if ($this->content['publiclyvisible'] && !$this->content_db['publiclyvisible'] && !$this['approved']) {
$messaging = new messaging();
foreach (User::findByPerms("root") as $rootuser) {
$statement = DBManager::get()->prepare("
SELECT roles_user.user_id
FROM roles
INNER JOIN roles_user ON (roles.roleid = roles_user.roleid)
WHERE roles.rolename = 'Pluginbeauftragter'
");
$statement->execute();
foreach ($statement->fetchAll(PDO::FETCH_COLUMN, 0) as $beauftragter) {
$messaging->sendSystemMessage(
$rootuser['user_id'],
$beauftragter,
sprintf(_("Plugin %s braucht ein Review"), $this['name']),
_("Auf dem Marktplatz wurde ein neues Plugin ffentlich geschaltet. Es kann allerdings erst ffentlich auf dem Marktplatz erscheinen, wenn Sie das Plugin einmal reviewt haben und freischalten. Gehen Sie auf den Pluginmarktplatz und den Reiter 'Qualittssicherung'.")
);
......@@ -63,12 +70,13 @@ class MarketPlugin extends SimpleORMap {
public function isWritable($user_id = null) {
$user_id || $user_id = $GLOBALS['user']->id;
return ($this['user_id'] === $user_id) || $GLOBALS['perm']->have_perm("root", $user_id);
return ($this['user_id'] === $user_id) || $this->isRootable($user_id);
}
public function isRootable($user_id = null) {
$user_id || $user_id = $GLOBALS['user']->id;
return $GLOBALS['perm']->have_perm("root", $user_id);
return $GLOBALS['perm']->have_perm("root", $user_id)
|| RolePersistence::isAssignedRole($user_id, "Pluginbeauftragter");
}
public function getLogoURL($absolute_url = false)
......
......@@ -32,7 +32,10 @@ class MarketPluginUsage extends SimpleORMap
}
public function isEditable() {
return $GLOBALS['perm']->have_perm('root') || $this->user_id == User::findCurrent() || $this->plugin->user_id == User::findCurrent()->id;
return $GLOBALS['perm']->have_perm('root')
|| $this->user_id == User::findCurrent()
|| $this->plugin->user_id == User::findCurrent()->id
|| RolePersistence::isAssignedRole(User::findCurrent()->id, "Pluginbeauftragter");
}
}
......@@ -7,7 +7,7 @@ class ApprovingController extends MarketController
function before_filter(&$action, &$args)
{
parent::before_filter($action, $args);
if (!$GLOBALS['perm']->have_perm("root")) {
if (!RolePersistence::isAssignedRole($GLOBALS['user']->id, "Pluginbeauftragter")) {
throw new AcessDeniedException("Kein Zutritt");
}
......
<?php
class AddModeratorRole extends Migration {
public function up() {
DBManager::get()->exec("
INSERT IGNORE INTO `roles` (`rolename`, `system`)
VALUES
('Pluginbeauftragter', 'n');
");
}
public function down() {
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment