gctools-outilsgc /
gcconnex
This project does not seem to handle request data directly as such no vulnerable execution paths were found.
include, or for example
via PHP's auto-loading mechanism.
These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more
| 1 | <?php |
||
| 2 | |||
| 3 | /** |
||
| 4 | * Group Tools |
||
| 5 | * |
||
| 6 | * Start file for this plugin |
||
| 7 | * |
||
| 8 | * @author ColdTrick IT Solutions |
||
| 9 | */ |
||
| 10 | |||
| 11 | // define for default group access |
||
| 12 | define("GROUP_TOOLS_GROUP_ACCESS_DEFAULT", -10); |
||
| 13 | |||
| 14 | require_once(dirname(__FILE__) . "/lib/functions.php"); |
||
| 15 | require_once(dirname(__FILE__) . "/lib/events.php"); |
||
| 16 | require_once(dirname(__FILE__) . "/lib/hooks.php"); |
||
| 17 | require_once(dirname(__FILE__) . "/lib/page_handlers.php"); |
||
| 18 | |||
| 19 | // default elgg event handlers |
||
| 20 | elgg_register_event_handler("init", "system", "group_tools_init"); |
||
| 21 | elgg_register_event_handler("ready", "system", "group_tools_ready"); |
||
| 22 | elgg_register_event_handler("pagesetup", "system", "group_tools_pagesetup", 550); |
||
| 23 | |||
| 24 | /** |
||
| 25 | * called when the Elgg system get initialized |
||
| 26 | * |
||
| 27 | * @return void |
||
| 28 | */ |
||
| 29 | function group_tools_init() { |
||
| 30 | |||
| 31 | // extend css & js |
||
| 32 | elgg_extend_view("css/elgg", "css/group_tools/site"); |
||
| 33 | elgg_extend_view("css/admin", "css/group_tools/admin"); |
||
| 34 | elgg_extend_view("js/elgg", "js/group_tools/site"); |
||
| 35 | elgg_extend_view("js/admin", "js/group_tools/admin"); |
||
| 36 | |||
| 37 | // extend page handlers |
||
| 38 | elgg_register_plugin_hook_handler("route", "groups", "group_tools_route_groups_handler"); |
||
| 39 | elgg_register_plugin_hook_handler("route", "livesearch", "group_tools_route_livesearch_handler"); |
||
| 40 | |||
| 41 | elgg_register_page_handler("groupicon", "group_tools_groupicon_page_handler"); |
||
| 42 | elgg_register_plugin_hook_handler("entity:icon:url", "group", "groups_tools_group_icon_url_handler"); |
||
| 43 | |||
| 44 | // hook on title menu |
||
| 45 | elgg_register_plugin_hook_handler("register", "menu:title", "group_tools_menu_title_handler"); |
||
| 46 | elgg_register_plugin_hook_handler("register", "menu:user_hover", "group_tools_menu_user_hover_handler"); |
||
| 47 | elgg_register_plugin_hook_handler("register", "menu:entity", "group_tools_menu_entity_handler"); |
||
| 48 | elgg_register_plugin_hook_handler("register", "menu:filter", "group_tools_menu_filter_handler"); |
||
| 49 | |||
| 50 | if (group_tools_multiple_admin_enabled()) { |
||
| 51 | // add group tool option |
||
| 52 | add_group_tool_option("group_multiple_admin_allow", elgg_echo("group_tools:multiple_admin:group_tool_option"), false); |
||
| 53 | |||
| 54 | // register permissions check hook |
||
| 55 | elgg_register_plugin_hook_handler("permissions_check", "group", "group_tools_multiple_admin_can_edit_hook"); |
||
| 56 | |||
| 57 | // register on group leave |
||
| 58 | elgg_register_event_handler("leave", "group", "group_tools_multiple_admin_group_leave"); |
||
| 59 | |||
| 60 | //notify admin on membership request |
||
| 61 | elgg_register_event_handler("create", "membership_request", "group_tools_membership_request"); |
||
| 62 | } |
||
| 63 | |||
| 64 | // register group activity widget |
||
| 65 | // 2012-05-03: restored limited functionality of group activity widget, will be fully restored if Elgg fixes widget settings |
||
| 66 | elgg_register_widget_type("group_river_widget", elgg_echo("widgets:group_river_widget:title"), elgg_echo("widgets:group_river_widget:description"), array("dashboard", "profile", "index", "groups"), true); |
||
| 67 | |||
| 68 | // register group members widget |
||
| 69 | elgg_register_widget_type("group_members", elgg_echo("widgets:group_members:title"), elgg_echo("widgets:group_members:description"), array("groups"), false); |
||
| 70 | |||
| 71 | // register groups invitations widget |
||
| 72 | elgg_register_widget_type("group_invitations", elgg_echo("widgets:group_invitations:title"), elgg_echo("widgets:group_invitations:description"), array("index", "dashboard"), false); |
||
| 73 | |||
| 74 | // register featured groups widget |
||
| 75 | elgg_register_widget_type("featured_groups", elgg_echo("groups:featured"), elgg_echo("widgets:featured_groups:description"), array("index")); |
||
| 76 | |||
| 77 | // register index groups widget |
||
| 78 | elgg_register_widget_type("index_groups", elgg_echo("groups"), elgg_echo("widgets:index_groups:description"), array("index"), true); |
||
| 79 | |||
| 80 | // quick start discussion |
||
| 81 | elgg_register_widget_type("start_discussion", elgg_echo("group_tools:widgets:start_discussion:title"), elgg_echo("group_tools:widgets:start_discussion:description"), array("index", "dashboard", "groups")); |
||
| 82 | |||
| 83 | // group invitation |
||
| 84 | elgg_register_action("groups/invite", dirname(__FILE__) . "/actions/groups/invite.php"); |
||
| 85 | |||
| 86 | // manage auto join for groups |
||
| 87 | elgg_extend_view("groups/edit", "group_tools/forms/special_states", 350); |
||
| 88 | elgg_register_event_handler("create", "member_of_site", "group_tools_join_site_handler"); |
||
| 89 | |||
| 90 | // show group edit as tabbed |
||
| 91 | elgg_extend_view("groups/edit", "group_tools/group_edit_tabbed", 1); |
||
| 92 | elgg_extend_view("groups/edit", "group_tools/group_edit_tabbed_js", 999999999); |
||
| 93 | |||
| 94 | // show group profile widgets - edit form |
||
| 95 | elgg_extend_view("groups/edit", "group_tools/forms/profile_widgets", 400); |
||
| 96 | |||
| 97 | // cleanup group side menu |
||
| 98 | elgg_extend_view("groups/edit", "group_tools/forms/cleanup", 450); |
||
| 99 | |||
| 100 | // group notifications |
||
| 101 | elgg_extend_view("groups/edit", "group_tools/forms/notifications", 375); |
||
| 102 | |||
| 103 | // allow group members to invite new members |
||
| 104 | elgg_extend_view("groups/edit", "group_tools/forms/invite_members", 475); |
||
| 105 | |||
| 106 | // configure a group welcome message |
||
| 107 | elgg_extend_view("groups/edit", "group_tools/forms/welcome_message"); |
||
| 108 | |||
| 109 | // configure domain based group join |
||
| 110 | elgg_extend_view("groups/edit", "group_tools/forms/domain_based"); |
||
| 111 | |||
| 112 | // show group status in owner block |
||
| 113 | elgg_extend_view("page/elements/owner_block/extend", "group_tools/owner_block"); |
||
| 114 | // show group status in stats (on group profile) |
||
| 115 | elgg_extend_view("groups/profile/summary", "group_tools/group_stats"); |
||
| 116 | |||
| 117 | if (elgg_is_active_plugin("blog")) { |
||
| 118 | elgg_register_widget_type("group_news", elgg_echo("widgets:group_news:title"), elgg_echo("widgets:group_news:description"), array("profile", "index", "dashboard"), true); |
||
| 119 | elgg_extend_view("css/elgg", "widgets/group_news/css"); |
||
| 120 | } |
||
| 121 | |||
| 122 | // related groups |
||
| 123 | add_group_tool_option("related_groups", elgg_echo("groups_tools:related_groups:tool_option"), false); |
||
| 124 | elgg_extend_view("groups/tool_latest", "group_tools/modules/related_groups"); |
||
| 125 | elgg_register_widget_type("group_related", elgg_echo("groups_tools:related_groups:widget:title"), elgg_echo("groups_tools:related_groups:widget:description"), array("groups")); |
||
| 126 | |||
| 127 | // registration |
||
| 128 | elgg_extend_view("register/extend", "group_tools/register_extend"); |
||
| 129 | |||
| 130 | // theme sandbox |
||
| 131 | elgg_extend_view("theme_sandbox/forms", "group_tools/theme_sandbox/grouppicker"); |
||
| 132 | |||
| 133 | // register index widget to show latest discussions |
||
| 134 | elgg_register_widget_type("discussion", elgg_echo("discussion:latest"), elgg_echo("widgets:discussion:description"), array("index", "dashboard"), true); |
||
| 135 | elgg_register_widget_type("group_forum_topics", elgg_echo("discussion:group"), elgg_echo("widgets:group_forum_topics:description"), array("groups")); |
||
| 136 | |||
| 137 | // register events |
||
| 138 | elgg_register_event_handler("join", "group", "group_tools_join_group_event"); |
||
| 139 | elgg_register_event_handler("delete", "relationship", array('ColdTrick\GroupTools\Membership', 'deleteRequest')); |
||
|
0 ignored issues
–
show
|
|||
| 140 | |||
| 141 | // register plugin hooks |
||
| 142 | elgg_register_plugin_hook_handler("entity:url", "object", "group_tools_widget_url_handler"); |
||
| 143 | elgg_register_plugin_hook_handler("default", "access", "group_tools_access_default_handler"); |
||
| 144 | elgg_register_plugin_hook_handler("access:collections:write", "user", "group_tools_access_write_handler"); |
||
| 145 | elgg_register_plugin_hook_handler("action", "groups/join", "group_tools_join_group_action_handler"); |
||
| 146 | elgg_register_plugin_hook_handler("register", "menu:owner_block", "group_tools_register_owner_block_menu_handler"); |
||
| 147 | elgg_register_plugin_hook_handler("route", "register", "group_tools_route_register_handler"); |
||
| 148 | elgg_register_plugin_hook_handler("action", "register", "group_tools_action_register_handler"); |
||
| 149 | elgg_register_plugin_hook_handler("group_tool_widgets", "widget_manager", "group_tools_tool_widgets_handler"); |
||
| 150 | |||
| 151 | // actions |
||
| 152 | elgg_register_action("group_tools/toggle_admin", dirname(__FILE__) . "/actions/toggle_admin.php"); |
||
| 153 | elgg_register_action("group_tools/mail", dirname(__FILE__) . "/actions/mail.php"); |
||
| 154 | elgg_register_action("group_tools/profile_widgets", dirname(__FILE__) . "/actions/profile_widgets.php"); |
||
| 155 | elgg_register_action("group_tools/cleanup", dirname(__FILE__) . "/actions/cleanup.php"); |
||
| 156 | elgg_register_action("group_tools/invite_members", dirname(__FILE__) . "/actions/invite_members.php"); |
||
| 157 | elgg_register_action("group_tools/welcome_message", dirname(__FILE__) . "/actions/welcome_message.php"); |
||
| 158 | elgg_register_action("group_tools/domain_based", dirname(__FILE__) . "/actions/domain_based.php"); |
||
| 159 | elgg_register_action("group_tools/related_groups", dirname(__FILE__) . "/actions/related_groups.php"); |
||
| 160 | elgg_register_action("group_tools/remove_related_groups", dirname(__FILE__) . "/actions/remove_related_groups.php"); |
||
| 161 | elgg_register_action("group_tools/member_export", dirname(__FILE__) . "/actions/member_export.php"); |
||
| 162 | |||
| 163 | elgg_register_action("group_tools/toggle_special_state", dirname(__FILE__) . "/actions/admin/toggle_special_state.php", "admin"); |
||
| 164 | elgg_register_action("group_tools/fix_auto_join", dirname(__FILE__) . "/actions/admin/fix_auto_join.php", "admin"); |
||
| 165 | elgg_register_action("group_tools/notifications", dirname(__FILE__) . "/actions/admin/notifications.php", "admin"); |
||
| 166 | elgg_register_action("group_tools/fix_acl", dirname(__FILE__) . "/actions/admin/fix_acl.php", "admin"); |
||
| 167 | elgg_register_action("group_tools/group_tool_presets", dirname(__FILE__) . "/actions/admin/group_tool_presets.php", "admin"); |
||
| 168 | elgg_register_action("group_tools/admin/bulk_delete", dirname(__FILE__) . "/actions/admin/bulk_delete.php", "admin"); |
||
| 169 | |||
| 170 | elgg_register_action("groups/email_invitation", dirname(__FILE__) . "/actions/groups/email_invitation.php"); |
||
| 171 | elgg_register_action("groups/decline_email_invitation", dirname(__FILE__) . "/actions/groups/decline_email_invitation.php"); |
||
| 172 | elgg_register_action("group_tools/revoke_email_invitation", dirname(__FILE__) . "/actions/groups/revoke_email_invitation.php"); |
||
| 173 | elgg_register_action("groups/edit", dirname(__FILE__) . "/actions/groups/edit.php"); |
||
| 174 | |||
| 175 | elgg_register_action("group_tools/order_groups", dirname(__FILE__) . "/actions/order_groups.php", "admin"); |
||
| 176 | |||
| 177 | elgg_register_action("discussion/toggle_status", dirname(__FILE__) . "/actions/discussion/toggle_status.php"); |
||
| 178 | } |
||
| 179 | |||
| 180 | /** |
||
| 181 | * called when the system is ready |
||
| 182 | * |
||
| 183 | * @return void |
||
| 184 | */ |
||
| 185 | function group_tools_ready() { |
||
| 186 | // unregister dashboard widget group_activity |
||
| 187 | elgg_unregister_widget_type("group_activity"); |
||
| 188 | } |
||
| 189 | |||
| 190 | /** |
||
| 191 | * called just before a page starts with output |
||
| 192 | * |
||
| 193 | * @return void |
||
| 194 | */ |
||
| 195 | function group_tools_pagesetup() { |
||
| 196 | |||
| 197 | $user = elgg_get_logged_in_user_entity(); |
||
| 198 | $page_owner = elgg_get_page_owner_entity(); |
||
| 199 | |||
| 200 | // admin menu item |
||
| 201 | elgg_register_admin_menu_item("configure", "group_tool_presets", "appearance"); |
||
| 202 | elgg_register_admin_menu_item("administer", "group_bulk_delete", "administer_utilities"); |
||
| 203 | |||
| 204 | if (elgg_in_context("groups") && ($page_owner instanceof ElggGroup)) { |
||
| 205 | if ($page_owner->forum_enable == "no") { |
||
| 206 | // unset if not enabled for this plugin |
||
| 207 | elgg_unregister_widget_type("group_forum_topics"); |
||
| 208 | } |
||
| 209 | |||
| 210 | if (!empty($user)) { |
||
| 211 | // check multiple admin |
||
| 212 | if (elgg_get_plugin_setting("multiple_admin", "group_tools") == "yes") { |
||
| 213 | // extend group members sidebar list |
||
| 214 | elgg_extend_view("groups/sidebar/members", "group_tools/group_admins", 400); |
||
| 215 | |||
| 216 | // remove group tool options for group admins |
||
| 217 | if (($page_owner->getOwnerGUID() != $user->getGUID()) && !$user->isAdmin()) { |
||
| 218 | remove_group_tool_option("group_multiple_admin_allow"); |
||
| 219 | } |
||
| 220 | } |
||
| 221 | |||
| 222 | // invitation management |
||
| 223 | View Code Duplication | if ($page_owner->canEdit()) { |
|
| 224 | $request_options = array( |
||
| 225 | "type" => "user", |
||
| 226 | "relationship" => "membership_request", |
||
| 227 | "relationship_guid" => $page_owner->getGUID(), |
||
| 228 | "inverse_relationship" => true, |
||
| 229 | "count" => true |
||
| 230 | ); |
||
| 231 | |||
| 232 | $requests = elgg_get_entities_from_relationship($request_options); |
||
| 233 | |||
| 234 | $postfix = ""; |
||
| 235 | if (!empty($requests)) { |
||
| 236 | $postfix = " [" . $requests . "]"; |
||
| 237 | } |
||
| 238 | |||
| 239 | if (!$page_owner->isPublicMembership()) { |
||
| 240 | elgg_register_menu_item("page", array( |
||
| 241 | "name" => "membership_requests", |
||
| 242 | "text" => elgg_echo("groups:membershiprequests") . $postfix, |
||
| 243 | "href" => "groups/requests/" . $page_owner->getGUID(), |
||
| 244 | )); |
||
| 245 | } else { |
||
| 246 | elgg_register_menu_item("page", array( |
||
| 247 | "name" => "membership_requests", |
||
| 248 | "text" => elgg_echo("group_tools:menu:invitations") . $postfix, |
||
| 249 | "href" => "groups/requests/" . $page_owner->getGUID(), |
||
| 250 | )); |
||
| 251 | } |
||
| 252 | } |
||
| 253 | |||
| 254 | // group mail options |
||
| 255 | if ($page_owner->canEdit() && (elgg_get_plugin_setting("mail", "group_tools") == "yes")) { |
||
| 256 | elgg_register_menu_item("page", array( |
||
| 257 | "name" => "mail", |
||
| 258 | "text" => elgg_echo("group_tools:menu:mail"), |
||
| 259 | "href" => "groups/mail/" . $page_owner->getGUID(), |
||
| 260 | )); |
||
| 261 | } |
||
| 262 | } |
||
| 263 | } |
||
| 264 | |||
| 265 | // cyu - index closed group too |
||
| 266 | if ($page_owner instanceof ElggGroup) { |
||
| 267 | |||
| 268 | // cleanup sidebar |
||
| 269 | elgg_extend_view("page/elements/sidebar", "group_tools/sidebar/cleanup"); |
||
| 270 | } |
||
| 271 | } |
||
| 272 |
It seems like the type of the argument is not accepted by the function/method which you are calling.
In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.
We suggest to add an explicit type cast like in the following example: