Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Mnet 1.0 progress

From MoodleDocs
Warning: This page is no longer in use. The information contained on the page should NOT be seen as relevant or reliable.


Status

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?

UI

  • 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