Obsolete:Mnet 1.0 progress

Jump to: navigation, search

Note: You are currently viewing documentation for Moodle 1.9. Up-to-date documentation for the latest stable version is available here: Mnet 1.0 progress.


General functionality is complete, though some config screens are _very_ raw (and yet others quite polished). Looking forward we have

  • Polish configuration aspects
  • Polish some usability aspects
  • More meaningful errors for end users - and easier to debug
  • Some internal changes
  • Some bugfixing (not many so far - cross fingers!)
  • Get some extra eyes on this and aim for a merge!
    • MultiAuth is 99% ready - reviews and testers welcome
    • RPC aspects are 90% ready - will be looking for review soon, testers welcome
    • Hub Services (SSO and Enrolment) are 80% ready - undergoing minor rework and fixups

Internals - Naming & conventions

  • Tables and functions following moodle conventions
    • DM Done: mnet_host.description - rename to mnet_host.name
    • DM Done: mnet.service.service_name rename to 'name'
    • DM Done: rename mdl_mnet_enrol_assignments.studentid to userid
  • should some of our mnet/enrol stuff be in auth/sso?
  • DM Done: $MNET_CLIENT instead of $MNET Note - we renamed to $MNET_REMOTE_CLIENT
  • ML Done: Database: when we are done with schema changes, write upgrade.php

Internals - correctness

  • ML Done: walk our delta to check for required_param() and optional_param() without PARAM_TYPE
  git-diff MOODLE_17_STABLE...master | pcregrep '\+.*(required_param|optional_param)'
  • ML Done: walk our delta to check for camelCase
  • multi auth
    • JH Done: initial install should enable email-based self-reg and manual accts
    • JH Tested: if they are disabled, it should _break_ and not allow users in
    • update 1.7 -> 1.8 auth migration guide
  • mnet rpc -
    • DM Done: don't dispatch if module/plugin is disabled
    • ML Done: figure out handling of xml-rpc reported errors
    • DM Done: why does the xmlrpc client have to call it 'enrol/mnet/enrol/foo'? the 2nd instance of enrol is superfluous
    • DM Done (Testing required): key rotation

  • enrol/mnet
    • ML Done: available_courses() needs review
    • enrol_user()/unenrol_user()
      • get rid of ob_ hack
      • only unenrol if enrol ='mnet'
      • Error handling if xmlrpc reported error
      • Error handling if remote host does not have networking ok?
      • maybe implement a 'default role override' (low pri)
  • block/courses_list needs to be reworked a bit for correctness
    • the "my courses" in the main page should follow
    • abstrace "get_my_remote_courses()" functionality
  • auth/mnet
    • JH Done: prevent jump if username === 'guest' or if mnethost!= localhost
  • Review capabilities and privileges - and relationship with whitelist / blacklist
  • JH Testing: MAJOR - user.username uniqueness - check with MartinD
  • Backup & REstore - check with Eloy

Architecture / Design

  • discuss mnet host services configuration and service data caching
    • DM Done: goal: simplify host to service mapping
    • DM Done: bug: Once we've seen a remote service, we think we have it to offer too?
    • DM Done: goal for MartinD: a "Moodle Hub" host may just offer sso and enrol to any remote host?


  • simplify mnet host configuration
    • partially done - how do we bring the ability to run promiscuous?
    • DM Done: use submit-redirect scheme re-enable the back-button
    • DM Done: admin sidebar link should be Networking->Hosts
  • DM Done: admin/mnet - do NOT show IDs anywhere in the page
  • DM Done: admin/mnet - make sure we trim trailing slashes at form input time, and also at RPC incoming call
  • enrol/mnet -
    • pull/cache enrolments from remote hosts
      • maybe as logs?
    • display in my courses
    • more advanced dance to enrol to remote hosts...
  • Make enrol/mnet interfaces nicer
    • remote_hosts.php
      • tidy up tables
      • add cached counts of courses available and enrolments
      • add links to logs view
    • remote_courses.php
      • should look & behave similar to courses/index.php -- steal CSS
    • remote_enrolment.php
      • tidy up
    • These 3 scripts above need a bit of a scrubbing and a whole lot of lang strings
      • To consider - these 3 scripts may need to be split off outside of enrol/mnet.
        • UI - wise, I think it will make sense to make them show up in the main admin block, so it shows up under Network -> Remote enrolments
    MartinD is likely to want it to be Network -> Hub enrolments or something like that.
    We may leave this until we talk with him -- it's not a big problem if we have to
    move the files around.
    • JH Done: Replace course / category selection in enrol/mnet/config.html with a separate page with 2 panes, similar to remote_enrolment.php
      • Storage of that info needs to be reworked
    • consider splitting out log handling to a separate page for scalability (low pri)

Further Functionality

  • Exchange more enrolment info during jump
    • IdP needs to current roles in SP to display in My Courses and reports
    • SP needs to know about enrolments in IdP (and perhaps even other SPs) to make My Courses more useful
    • Related My Courses improvements
    • Might need to tweak mnet_enrol_role_assignments table
  • Mnet Dispatcher (low pri)
    • Expose core moodle calls via lib/publiclib.php or similar?
    • Allow mnet-specific drop-ins via mnet/plugins/ ?
  • Content sharing
    • ML: Defer Come up with a simple + useful plan or defer
  • Forum post mailings
    • Tweak read / reply URLs - possible?
      • JH: If we can get jump.php to use ?wwwroot=foo as well as ?hostid=n otherwise the cron() function in enrol/mnet will need to query remote host for the mnet_host_id...
      • Other mailouts with links?

User feedback

  • RWyles
    • Allow request remote host logo for theme displkay
    • LOGINAS is broken on SP
    • Think about gradebook service to export final grades