示例#1
0
             $lms_grp = new koala_group_course($receiver);
             break;
         default:
             //////////////////////////////////////////////////////////////
             // look for group objects in extensions
             $extension = $em->get_extension_by_obj_type($type);
             if (is_object($extension)) {
                 $lms_grp = $extension->get_wrapper_class($receiver);
             } else {
                 $lms_grp = new koala_group_default($receiver);
             }
             break;
     }
     // build the footer
     $footer = "<br /><br />--- <br />" . gettext("This E-Mail was sent to %GROUP in koaLA.");
     $footer = str_replace("%GROUP", $lms_grp->get_display_name(), $footer);
     $subject = gettext("Circular") . ": " . $subject;
 }
 $body = $values["body"];
 // Prevent the usage of HTML-Code in Mail body and subject as this is a possible
 // security issue when mails are shown in a browser
 $body = str_replace('<', '&lt;', $body);
 $body = str_replace('>', '&gt;', $body);
 $subject = str_replace('<', '&lt;', $subject);
 $subject = str_replace('>', '&gt;', $subject);
 if (isset($footer)) {
     $body .= $footer;
 }
 // Finally, we are sending the mail and set success to true
 lms_steam::mail($receiver, $user, $subject, $body);
 $success = true;
示例#2
0
 public function frameResponse(\FrameResponseObject $frameResponseObject)
 {
     $group_id = $this->params[0];
     $user = \lms_steam::get_current_user();
     try {
         $steam_group = !empty($group_id) ? \steam_factory::get_object($GLOBALS["STEAM"]->get_id(), $group_id) : FALSE;
     } catch (Exception $ex) {
         include "bad_link.php";
         exit;
     }
     $group_is_private = FALSE;
     if ($steam_group && is_object($steam_group)) {
         switch ((string) $steam_group->get_attribute("OBJ_TYPE")) {
             case "course":
                 $group = new koala_group_course($steam_group);
                 // TODO: Passt der backlink?
                 $backlink = PATH_URL . SEMESTER_URL . "/" . $group->get_semester()->get_name() . "/" . h($group->get_name()) . "/";
                 break;
             default:
                 $group = new \koala_group_default($steam_group);
                 // TODO: Passt der backlink?
                 $backlink = PATH_URL . "groups/" . $group->get_id() . "/";
                 // Determine if group is public or private
                 $parent = $group->get_parent_group();
                 if ($parent->get_id() == STEAM_PRIVATE_GROUP) {
                     $group_is_private = TRUE;
                 }
                 break;
         }
     }
     if ($group_is_private) {
         if (!$steam_group->is_member($user) && !\lms_steam::is_koala_admin($user)) {
             throw new Exception(gettext("You have no rights to access this group"), E_USER_RIGHTS);
         }
     }
     if (!$steam_group->check_access_write($user)) {
         throw new Exception(str_replace("%USER", $user->get_login(), sr_replace("%GROUP", $group->get_id(), gettext("Access denied: User %USER has no right to delete the group %GROUP"))), E_USER_RIGHTS);
     }
     if ($_SERVER["REQUEST_METHOD"] == "POST") {
         $values = $_POST["values"];
         $env = $steam_group->get_environment();
         // TODO: Passt der link?
         $upper_link = PATH_URL . "groups/" . (is_object($env) ? "?cat=" . $env->get_id() : "");
         $group_name = $group->get_display_name();
         $members = $group->get_members();
         $inventory = $group->get_workroom()->get_inventory_raw();
         $deleted = TRUE;
         foreach ($inventory as $object) {
             if (!$object instanceof \steam_user) {
                 try {
                     \lms_steam::delete($object);
                 } catch (Exception $ex3) {
                     \logging::write_log(LOG_DEBUGLOG, "groups_delete:error deleting object from group workroom\t" . $login . " \t" . $group->get_display_name() . " \t" . $steam_group->get_id() . " \t" . $object->get_id());
                 }
             }
         }
         if ($steam_group->delete()) {
             $user->get_attributes(array(OBJ_NAME, USER_FIRSTNAME, USER_FULLNAME));
             foreach ($members as $member) {
                 $cache = get_cache_function($member->get_name());
                 $cache->drop("lms_steam::user_get_groups", $member->get_name(), TRUE);
                 $cache->drop("lms_steam::user_get_groups", $member->get_name(), FALSE);
                 $cache->drop("lms_steam::user_get_profile", $member->get_name());
                 $cache->drop("lms_portal::get_menu_html", $member->get_name(), TRUE);
             }
             $cache = get_cache_function($steam_group->get_id());
             $cache->drop("lms_steam::group_get_members", $steam_group->get_id());
             foreach ($members as $member) {
                 \lms_steam::mail($member, $user, PLATFORM_NAME . ": " . str_replace("%NAME", h($group_name), gettext("Group %NAME has been deleted.")), str_replace("%USER", $user->get_name() . " (" . $user->get_attribute(USER_FIRSTNAME) . " " . $user->get_attribute(USER_FULLNAME) . ")", str_replace("%NAME", h($group_name), gettext("The group '%NAME' has been deleted from he koaLA System by %USER."))) . "\n\n-- \n" . str_replace("%NAME", h($group_name), gettext("This system generated notification message was sent to you as a former member of the deleted group \"%NAME\"")));
             }
             $_SESSION["confirmation"] = str_replace("%NAME", h($group_name), gettext("The group '%NAME' has been deleted. A notification has been sent to former members."));
             header("Location: " . $upper_link);
             exit;
         } else {
             throw new Exception("Deletion of group failed");
         }
     }
     $content = \Group::getInstance()->loadTemplate("group_delete.template.html");
     $content->setVariable("FORM_ACTION", "");
     $content->setVariable("LABEL_ARE_YOU_SURE", gettext("Are you sure?"));
     $content->setVariable("INFO_DELETE_GROUP", str_replace("%GROUP_NAME", h($group->get_name()), gettext("You are going to delete '%GROUP_NAME'.")) . "<br />" . gettext("All data of this group will be removed from the system including weblogs, wikis, forums and documents. All members of this group will be notified about the deletion automatically.") . "<br /><br /><strong>" . gettext("The deletion process may take several minutes.")) . "</strong>";
     $content->setVariable("LABEL_DELETE_IT", gettext("Yes, delete this group"));
     $content->setVariable("DELETE_BACK_LINK", $_SERVER["HTTP_REFERER"]);
     $content->setVariable("BACK_LINK", $_SERVER["HTTP_REFERER"]);
     $content->setVariable("LABEL_RETURN", gettext("back"));
     $frameResponseObject->setTitle("Group");
     $rawHtml = new \Widgets\RawHtml();
     $rawHtml->setHtml($content->get());
     $frameResponseObject->addWidget($rawHtml);
     return $frameResponseObject;
 }
示例#3
0
        break;
    default:
        $group = new koala_group_default($steam_group);
        $backlink = PATH_URL . "groups/" . $group->get_id() . "/members/";
        break;
}
if (!$group->is_admin($user)) {
    throw new Exception("No admin of " . $group->get_groupname() . ": " . $user->get_name());
}
if (isset($_REQUEST["add"]) && count($_REQUEST["add"]) > 0) {
    $login = key($_REQUEST["add"]);
    $new_member = steam_factory::username_to_object($GLOBALS["STEAM"]->get_id(), $login);
    if ($group->add_admin($new_member)) {
        //$group_name = $group->get_attribute("OBJ_DESC");
        //if ( !is_string($group_name) || empty($group_name) )
        $group_name = $group->get_display_name();
        $message = str_replace("%NAME", $new_member->get_attribute("USER_FIRSTNAME") . " " . $new_member->get_attribute("USER_FULLNAME"), gettext("Dear %NAME,")) . "\n\n";
        $message .= str_replace("%GROUP", h($group_name), gettext("You were added to '%GROUP' as a new admin.")) . "\n\n";
        $message .= gettext("This is an automatically generated message.") . " " . gettext("If you haven't been informed about this membership in advance, please contact the sender of this message.") . "\n\n" . str_replace("%GROUP", "<a href=\"" . $backlink . "\">" . h($group_name) . "</a>", gettext("See '%GROUP' for further information."));
        lms_steam::mail($new_member, $user, PLATFORM_NAME . ": " . str_replace("%GROUP", h($group_name), gettext("You were added to '%GROUP' as a new admin")), $message);
        $cache = get_cache_function($new_member->get_name(), 60);
        $cache->drop("lms_steam::user_get_groups", $new_member->get_name(), TRUE);
        $cache->drop("lms_steam::user_get_groups", $new_member->get_name(), FALSE);
        $cache->drop("lms_steam::user_get_groups", $new_member->get_name());
        $_SESSION["confirmation"] = str_replace("%NAME", $new_member->get_attribute("USER_FIRSTNAME") . " " . $new_member->get_attribute("USER_FULLNAME"), gettext("%NAME successfully defined as admin."));
        //header( "Location: " . $backlink );
        //exit;
    }
}
if ($iscourse) {
    $sinfo = gettext("You can add a search result as staff member to '<b>%GROUP</b>'.");