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 ...@@ -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")); $approving = new Navigation(_("Qualittssicherung"), PluginEngine::getURL($this, array(), "approving/overview"));
$top->addSubNavigation("approving", $approving); $top->addSubNavigation("approving", $approving);
} }
......
...@@ -51,9 +51,16 @@ class MarketPlugin extends SimpleORMap { ...@@ -51,9 +51,16 @@ class MarketPlugin extends SimpleORMap {
public function requestReview() { public function requestReview() {
if ($this->content['publiclyvisible'] && !$this->content_db['publiclyvisible'] && !$this['approved']) { if ($this->content['publiclyvisible'] && !$this->content_db['publiclyvisible'] && !$this['approved']) {
$messaging = new messaging(); $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( $messaging->sendSystemMessage(
$rootuser['user_id'], $beauftragter,
sprintf(_("Plugin %s braucht ein Review"), $this['name']), 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'.") _("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 { ...@@ -63,12 +70,13 @@ class MarketPlugin extends SimpleORMap {
public function isWritable($user_id = null) { public function isWritable($user_id = null) {
$user_id || $user_id = $GLOBALS['user']->id; $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) { public function isRootable($user_id = null) {
$user_id || $user_id = $GLOBALS['user']->id; $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) public function getLogoURL($absolute_url = false)
......
...@@ -32,7 +32,10 @@ class MarketPluginUsage extends SimpleORMap ...@@ -32,7 +32,10 @@ class MarketPluginUsage extends SimpleORMap
} }
public function isEditable() { 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 ...@@ -7,7 +7,7 @@ class ApprovingController extends MarketController
function before_filter(&$action, &$args) function before_filter(&$action, &$args)
{ {
parent::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"); 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.
Please register or to comment