diff --git a/addon.json b/addon.json index 11dd2a8..790f223 100644 --- a/addon.json +++ b/addon.json @@ -16,7 +16,8 @@ "Groups.Group.Delete", "Groups.Moderation.Manage", "Groups.EmailInvitations.Add", - "Groups.Category.Manage" + "Groups.Category.Manage", + "Groups.Group.Archive" ], "authors": [ { diff --git a/class.groups.plugin.php b/class.groups.plugin.php index 161a671..9042833 100644 --- a/class.groups.plugin.php +++ b/class.groups.plugin.php @@ -15,8 +15,12 @@ class GroupsPlugin extends Gdn_Plugin { const GROUPS_ROUTE = '/groups'; + const ROUTE_MY_GROUPS = '/groups/mine'; + const ROUTE_CHALLENGE_GROUPS = '/groups?filter=challenge'; //'/groups/challenges'; + const ROUTE_REGULAR_GROUPS = '/groups?filter=regular'; //'/groups/regulars'; const GROUP_ROUTE = '/group/'; const GROUPS_GROUP_ADD_PERMISSION = 'Groups.Group.Add'; + const GROUPS_GROUP_ARCHIVE_PERMISSION = 'Groups.Group.Archive'; const GROUPS_GROUP_EDIT_PERMISSION = 'Groups.Group.Edit'; const GROUPS_GROUP_DELETE_PERMISSION = 'Groups.Group.Delete'; const GROUPS_CATEGORY_MANAGE_PERMISSION = 'Groups.Category.Manage'; @@ -79,7 +83,8 @@ private function initDefaultTopcoderRoles() { self::GROUPS_MODERATION_MANAGE_PERMISSION => 1, self::GROUPS_CATEGORY_MANAGE_PERMISSION => 1, self::GROUPS_GROUP_ADD_PERMISSION => 1, - self::GROUPS_EMAIL_INVITATIONS_PERMISSION => 1 + self::GROUPS_EMAIL_INVITATIONS_PERMISSION => 1, + self::GROUPS_GROUP_ARCHIVE_PERMISSION => 1 ], true); $permissionModel->save( [ @@ -88,7 +93,8 @@ private function initDefaultTopcoderRoles() { self::GROUPS_MODERATION_MANAGE_PERMISSION => 1, self::GROUPS_CATEGORY_MANAGE_PERMISSION => 1, self::GROUPS_GROUP_ADD_PERMISSION => 1, - self::GROUPS_EMAIL_INVITATIONS_PERMISSION => 1 + self::GROUPS_EMAIL_INVITATIONS_PERMISSION => 1, + self::GROUPS_GROUP_ARCHIVE_PERMISSION => 1 ], true); $permissionModel->save( [ @@ -165,11 +171,15 @@ public function onDisable() { public function discussionsController_beforeDiscussionMetaData_handler($sender, $args){ if($args['Discussion']) { $discussion = $args['Discussion']; - if ($discussion->GroupID) { - $result = '/group/' . $discussion->GroupID; + $groupModel = new GroupModel(); + $groupID = $groupModel->findGroupIDFromDiscussion($discussion); + GroupsPlugin::log('discussionsController_beforeDiscussionMetaData_handler', [ + 'GroupID' => $groupID]); + if ($groupID) { + $result = '/group/' . $groupID; $url = url($result, true); - $groupModel = new GroupModel(); - $group = $groupModel->getByGroupID($discussion->GroupID); + + $group = $groupModel->getByGroupID($groupID); echo '