Beispiel #1
0
 function User($name, $age, $username, $password)
 {
     $this->clean_input(set_name($name));
     $this->clean_input(set_age($age));
     $this->clean_input(set_username($username));
     $this->clean_input(set_password($password));
 }
Beispiel #2
0
/**
 * Given an object containing all the necessary data,
 * (defined by the form in mod_form.php) this function
 * will create a new instance and return the id number
 * of the new instance.
 *
 * @param object $adobeconnect An object from the form in mod_form.php
 * @return int The id of the newly inserted adobeconnect record
 */
function adobeconnect_add_instance($adobeconnect)
{
    global $COURSE, $USER, $DB;
    $adobeconnect->timecreated = time();
    $adobeconnect->meeturl = adobeconnect_clean_meet_url($adobeconnect->meeturl);
    $adobeconnect->userid = $USER->id;
    $name = empty($USER->idnumber) ? $USER->username : $USER->idnumber;
    $username = set_username($name, $USER->email);
    // Assign the current user with the Adobe Presenter role.
    $context = context_course::instance($adobeconnect->course);
    if (!has_capability('mod/adobeconnect:meetinghost', $context, $USER->id, false)) {
        $param = array('shortname' => 'adobeconnecthost');
        $roleid = $DB->get_field('role', 'id', $param);
        if (!role_assign($roleid, $USER->id, $context->id, 'mod_adobeconnect')) {
            debugging('role assignment failed', DEBUG_DEVELOPER);
            return false;
        }
    }
    $aconnect = aconnect_login();
    if ($aconnect->get_connection() != 1) {
        debugging('Unable to connect to the Adobe Connect server.', DEBUG_DEVELOPER);
        return false;
    }
    $recid = $DB->insert_record('adobeconnect', $adobeconnect);
    if (empty($recid)) {
        debugging('creating adobeconnect module instance failed', DEBUG_DEVELOPER);
        return false;
    }
    // Get the user's meeting folder location, if non exists then get the shared meeting folder location.
    $meetfldscoid = aconnect_get_user_folder_sco_id($aconnect, $username);
    if (empty($meetfldscoid)) {
        $meetfldscoid = aconnect_get_folder($aconnect, 'meetings');
    }
    $meeting = clone $adobeconnect;
    if (0 != $adobeconnect->groupmode) {
        // Allow for multiple groups.
        // Get all groups for the course.
        $crsgroups = groups_get_all_groups($COURSE->id);
        if (empty($crsgroups)) {
            return 0;
        }
        require_once dirname(dirname(dirname(__FILE__))) . '/group/lib.php';
        // Create the meeting for each group.
        foreach ($crsgroups as $crsgroup) {
            // The teacher role if they don't already have one and assign them to each group.
            if (!groups_is_member($crsgroup->id, $USER->id)) {
                groups_add_member($crsgroup->id, $USER->id);
            }
            $meeting->name = $adobeconnect->name . '_' . $crsgroup->name;
            if (!empty($adobeconnect->meeturl)) {
                $meeting->meeturl = adobeconnect_clean_meet_url($adobeconnect->meeturl . '_' . $crsgroup->name);
            }
            // If creating the meeting failed, then return false and revert the group role assignments.
            if (!($meetingscoid = aconnect_create_meeting($aconnect, $meeting, $meetfldscoid))) {
                groups_remove_member($crsgroup->id, $USER->id);
                debugging('Error creating meeting', DEBUG_DEVELOPER);
                return false;
            }
            // Update permissions for meeting.
            if (empty($adobeconnect->meetingpublic)) {
                aconnect_update_meeting_perm($aconnect, $meetingscoid, ADOBE_MEETPERM_PRIVATE);
            } else {
                aconnect_update_meeting_perm($aconnect, $meetingscoid, ADOBE_MEETPERM_PUBLIC);
            }
            // Insert record to activity instance in meeting_groups table.
            $record = new stdClass();
            $record->instanceid = $recid;
            $record->meetingscoid = $meetingscoid;
            $record->groupid = $crsgroup->id;
            $record->id = $DB->insert_record('adobeconnect_meeting_groups', $record);
            // Add event to calendar.
            $event = new stdClass();
            $event->name = $meeting->name;
            $event->description = format_module_intro('adobeconnect', $adobeconnect, $adobeconnect->coursemodule);
            $event->courseid = $adobeconnect->course;
            $event->groupid = $crsgroup->id;
            $event->userid = 0;
            $event->instance = $recid;
            $event->eventtype = 'group';
            $event->timestart = $adobeconnect->starttime;
            $event->timeduration = $adobeconnect->endtime - $adobeconnect->starttime;
            $event->visible = 1;
            $event->modulename = 'adobeconnect';
            calendar_event::create($event);
        }
    } else {
        // No groups support.
        $meetingscoid = aconnect_create_meeting($aconnect, $meeting, $meetfldscoid);
        // If creating the meeting failed, then return false and revert the group role assignments.
        if (!$meetingscoid) {
            debugging('error creating meeting', DEBUG_DEVELOPER);
            return false;
        }
        // Update permissions for meeting.
        if (empty($adobeconnect->meetingpublic)) {
            aconnect_update_meeting_perm($aconnect, $meetingscoid, ADOBE_MEETPERM_PRIVATE);
        } else {
            aconnect_update_meeting_perm($aconnect, $meetingscoid, ADOBE_MEETPERM_PUBLIC);
        }
        // Insert record to activity instance in meeting_groups table.
        $record = new stdClass();
        $record->instanceid = $recid;
        $record->meetingscoid = $meetingscoid;
        $record->groupid = 0;
        $record->id = $DB->insert_record('adobeconnect_meeting_groups', $record);
        // Add event to calendar.
        $event = new stdClass();
        $event->name = $meeting->name;
        $event->description = format_module_intro('adobeconnect', $adobeconnect, $adobeconnect->coursemodule);
        $event->courseid = $adobeconnect->course;
        $event->groupid = 0;
        $event->userid = 0;
        $event->instance = $recid;
        $event->eventtype = 'course';
        $event->timestart = $adobeconnect->starttime;
        $event->timeduration = $adobeconnect->endtime - $adobeconnect->starttime;
        $event->visible = 1;
        $event->modulename = 'adobeconnect';
        calendar_event::create($event);
    }
    // If no meeting URL was submitted,
    // update meeting URL for activity with server assigned URL.
    if (empty($adobeconnect->meeturl) and 0 == $adobeconnect->groupmode) {
        $filter = array('filter-sco-id' => $meetingscoid);
        $meeting = aconnect_meeting_exists($aconnect, $meetfldscoid, $filter);
        if (!empty($meeting)) {
            $meeting = current($meeting);
            $record = new stdClass();
            $record->id = $recid;
            $record->meeturl = trim($meeting->url, '/');
            $DB->update_record('adobeconnect', $record);
        }
    }
    aconnect_logout($aconnect);
    return $recid;
}
/**
 * This function returns the user's adobe connect login username based off of
 * the adobe connect module's login configuration settings (Moodle username or
 * Moodle email)
 *
 * @param int $userid the user id
 * @return mixed - user's login username or false if something bad happened
 */
function get_connect_username($userid)
{
    global $DB;
    $username = '';
    $param = array('id' => $userid);
    $record = $DB->get_record('user', $param, 'id,username,email,idnumber');
    if (!empty($userid) && !empty($record)) {
        $userid = empty($record->idnumber) ? $record->username : $record->idnumber;
        $username = set_username($userid, $record->email);
    }
    return $username;
}
if (!confirm_sesskey()) {
    print_error('Invalid session');
}
require_login($course, true, $cm);
// Set page global.
$PAGE->set_title('Edit');
$PAGE->set_pagelayout('popup');
$PAGE->set_heading($course->fullname);
$PAGE->set_context($context);
$url = new moodle_url('/mod/adobeconnect/recording.php', array('id' => $cm->id));
$PAGE->set_url($url);
$usrobj = new stdClass();
$usrobj = clone $USER;
// Create a Connect Pro login session for this user.
$name = empty($usrobj->idnumber) ? $usrobj->username : $usrobj->idnumber;
$usrobj->username = set_username($name, $usrobj->email);
$params = array('instanceid' => $cm->instance, 'groupid' => $groupid);
$sql = "SELECT meetingscoid FROM {adobeconnect_meeting_groups} amg WHERE " . "amg.instanceid = :instanceid AND amg.groupid = :groupid";
$meetscoid = $DB->get_record_sql($sql, $params);
// Get the Meeting recording details.
$recording = array();
$aconnect = aconnect_login();
$fldid = aconnect_get_folder($aconnect, 'content');
$usrcanjoin = false;
$usrprincipal = 0;
if (!($usrprincipal = aconnect_user_exists($aconnect, $usrobj))) {
    if (!($usrprincipal = aconnect_create_user($aconnect, $usrobj))) {
        debugging(get_string('erroruser', 'adobeconnect'), DEBUG_DEVELOPER);
    }
}
// Check the user's capabilities and assign them the Adobe Role.
Beispiel #5
0
<?php

include '..' . DIRECTORY_SEPARATOR . 'includes.' . DIRECTORY_SEPARATOR . 'ajax.php';
if (count($_GET) > 0) {
    switch ($_GET['request']) {
        case 'get_username':
            get_username();
            break;
        case 'set_username':
            set_username($_GET['username']);
            break;
        case 'append_message':
            append_message($_GET['message']);
            break;
        case 'get_messages':
            get_messages();
            break;
    }
}
Beispiel #6
0
            if (!empty($username) && !empty($password)) {
                $username = $db->mysql_prep($username);
                $password = hash("sha256", $db->mysql_prep($password));
                $db->connect();
                $query = "SELECT username,password,confirm_rights FROM admin where username='******' AND password='******'";
                $user = $db->query_database($query);
                $result = $db->fetch_array($user);
                $admin_rights = $result['confirm_rights'];
                if (is_null($result)) {
                    $message = "Incorrect Details,Please Login again..";
                } else {
                    if ($admin_rights == 0) {
                        redirect_to('admin_login.php?message2=true');
                    } else {
                        require_once '../includes/session.php';
                        set_username($username);
                        redirect_to('create_test.php');
                    }
                }
            } else {
                echo "please enter details correctly";
            }
        } else {
            echo "fields are empty";
        }
    } else {
        echo "Data not set";
    }
}
?>
 public function validation($data, $files)
 {
     global $DB, $USER, $COURSE;
     $errors = parent::validation($data, $files);
     $usrobj = clone $USER;
     $name = empty($usrobj->idnumber) ? $usrobj->username : $usrobj->idnumber;
     $usrobj->username = set_username($name, $usrobj->email);
     $aconnect = aconnect_login();
     $groupprincipalid = aconnect_get_host_group($aconnect);
     // Check if the user exists and if not create the new user.
     if (!($usrprincipal = aconnect_user_exists($aconnect, $usrobj))) {
         if (!($usrprincipal = aconnect_create_user($aconnect, $usrobj))) {
             debugging("error creating user", DEBUG_DEVELOPER);
         }
     }
     // Add the user to the host group if they aren't already.
     aconnect_add_user_group($aconnect, $groupprincipalid, $usrprincipal);
     // Search for a Meeting with the same starting name.  It will cause a duplicate
     // meeting name (and error) when the user begins to add participants to the meeting.
     $meetfldscoid = aconnect_get_folder($aconnect, 'meetings');
     $filter = array('filter-like-name' => $data['name']);
     $namematches = aconnect_meeting_exists($aconnect, $meetfldscoid, $filter);
     // Search the user's adobe connect folder.
     $usrfldscoid = aconnect_get_user_folder_sco_id($aconnect, $usrobj->username);
     if (!empty($usrfldscoid)) {
         $namematches = $namematches + aconnect_meeting_exists($aconnect, $usrfldscoid, $filter);
     }
     if (empty($namematches)) {
         $namematches = array();
     }
     // Now search for existing meeting room URLs.
     $url = $data['meeturl'] = adobeconnect_clean_meet_url($data['meeturl']);
     // Check to see if there are any trailing slashes or additional parts to the url
     // ex. mymeeting/mysecondmeeting/  Only the 'mymeeting' part is valid.
     if (0 != substr_count($url, '/') and false !== strpos($url, '/', 1)) {
         $errors['meeturl'] = get_string('invalidadobemeeturl', 'adobeconnect');
     }
     $filter = array('filter-like-url-path' => $url);
     $urlmatches = aconnect_meeting_exists($aconnect, $meetfldscoid, $filter);
     // Search the user's adobe connect folder.
     if (!empty($usrfldscoid)) {
         $urlmatches = $urlmatches + aconnect_meeting_exists($aconnect, $usrfldscoid, $filter);
     }
     if (empty($urlmatches)) {
         $urlmatches = array();
     } else {
         // Format url for comparison.
         if (false === strpos($url, '/') or 0 != strpos($url, '/')) {
             $url = '/' . $url;
         }
     }
     // Check URL for correct length and format.
     if (!empty($data['meeturl'])) {
         if (strlen($data['meeturl']) > 60) {
             $errors['meeturl'] = get_string('longurl', 'adobeconnect');
         } else {
             if (!preg_match('/^[a-z][a-z\\-]*/i', $data['meeturl'])) {
                 $errors['meeturl'] = get_string('invalidurl', 'adobeconnect');
             }
         }
     }
     // Check for available groups if groupmode is selected.
     if ($data['groupmode'] > 0) {
         $crsgroups = groups_get_all_groups($COURSE->id);
         if (empty($crsgroups)) {
             $errors['groupmode'] = get_string('missingexpectedgroups', 'adobeconnect');
         }
     }
     // Adding activity.
     if (empty($data['update'])) {
         if ($data['starttime'] == $data['endtime']) {
             $errors['starttime'] = get_string('samemeettime', 'adobeconnect');
             $errors['endtime'] = get_string('samemeettime', 'adobeconnect');
         } else {
             if ($data['endtime'] < $data['starttime']) {
                 $errors['starttime'] = get_string('greaterstarttime', 'adobeconnect');
             }
         }
         // Check for local activities with the same name.
         $params = array('name' => $data['name']);
         if ($DB->record_exists('adobeconnect', $params)) {
             $errors['name'] = get_string('duplicatemeetingname', 'adobeconnect');
             return $errors;
         }
         // Check Adobe connect server for duplicated names.
         foreach ($namematches as $match) {
             if (0 == substr_compare($match->name, $data['name'] . '_', 0, strlen($data['name'] . '_'), false)) {
                 $errors['name'] = get_string('duplicatemeetingname', 'adobeconnect');
             }
         }
         foreach ($urlmatches as $match) {
             $matchurl = rtrim($match->url, '/');
             if (0 == substr_compare($matchurl, $url . '_', 0, strlen($url . '_'), false)) {
                 $errors['meeturl'] = get_string('duplicateurl', 'adobeconnect');
             }
         }
     } else {
         // Updating activity
         // Look for existing meeting names, excluding this activity's group meeting(s).
         $grpmeetings = $DB->get_records('adobeconnect_meeting_groups', array('instanceid' => $data['instance']), null, 'meetingscoid, groupid');
         if (empty($grpmeetings)) {
             $grpmeetings = array();
         }
         foreach ($namematches as $match) {
             if (!array_key_exists($match->scoid, $grpmeetings)) {
                 if (0 == substr_compare($match->name, $data['name'] . '_', 0, strlen($data['name'] . '_'), false)) {
                     $errors['name'] = get_string('duplicatemeetingname', 'adobeconnect');
                 }
             }
         }
         foreach ($urlmatches as $match) {
             if (!array_key_exists($match->scoid, $grpmeetings)) {
                 if (0 == substr_compare($match->url, $url . '_', 0, strlen($url . '_'), false)) {
                     $errors['meeturl'] = get_string('duplicateurl', 'adobeconnect');
                 }
             }
         }
         // Validate start and end times.
         if ($data['starttime'] == $data['endtime']) {
             $errors['starttime'] = get_string('samemeettime', 'adobeconnect');
             $errors['endtime'] = get_string('samemeettime', 'adobeconnect');
         } else {
             if ($data['endtime'] < $data['starttime']) {
                 $errors['starttime'] = get_string('greaterstarttime', 'adobeconnect');
             }
         }
     }
     aconnect_logout($aconnect);
     if ($aconnect->timeout()) {
         $errors = array('name' => get_string('errortimeout', 'adobeconnect'));
     }
     return $errors;
 }