/** * event to set the plugin permissions * @param object $evctl * @return string */ public function eventUpdatePluginPermission(EventControler $evctl) { $do_plugin_permission = new CRMPluginPermission(); $plugin_name = $evctl->plugin_name; $all_users = $evctl->all_users; $by_roles = $evctl->by_roles; $by_users = $evctl->by_users; $permission_type = 0; $attribute = array(); if ($by_roles == 'on') { $attribute = $evctl->roles_data; $permission_type = 2; } elseif ($by_users == 'on') { $attribute = $evctl->users_data; $permission_type = 3; } else { $permission_type = 1; } $err = ''; if ($all_users != 'on' || $by_roles != 'on' || $by_users != 'on') { $err = _('Please check one permission option before saving'); } elseif (($by_roles == 'on' || $by_users == 'on') && count($attribute) > 0) { $err = _('Please select some permission attributes before saving'); } if ($err != '') { $permission = $do_plugin_permission->get_plugins_permission($plugin_name); if (false === $permission) { $do_plugin_permission = new CRMPluginPermission(); $do_plugin_permission->addNew(); $do_plugin_permission->name = $plugin_name; $do_plugin_permission->type = $permission_type; $do_plugin_permission->add(); $idplugins_permissions = $do_plugin_permission->getInsertId(); if ($permission_type == 2 || $permission_type == 3) { $do_plugin_permission->add_permission_attributes($idplugins_permissions, $permission_type, $attribute); } } else { $id = $permission['id']; // update the plugins_permissions $qry = "update `plugins_permissions` set type = ? where `idplugins_permissions` = ?"; $stmt = $this->getDbConnection()->executeQuery($qry, array($permission_type, $id)); // update the plugins_permissions_attributes $qry = "delete from `plugins_permissions_attributes` where `idplugins_permissions` = ?"; $stmt = $this->getDbConnection()->executeQuery($qry, array($id)); if ($permission_type == 2 || $permission_type == 3) { $do_plugin_permission->add_permission_attributes($id, $permission_type, $attribute); } } echo '1'; } else { echo $err; } }