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.

Obsolete:Mnet 1.0 progress: Difference between revisions

From MoodleDocs
No edit summary
m (removing categories as page is obsolete)
 
(20 intermediate revisions by 5 users not shown)
Line 16: Line 16:


* Tables and functions following moodle conventions
* Tables and functions following moodle conventions
** mnet_host.description - rename to mnet_host.name
** <font color="green">DM Done:</font> mnet_host.description - rename to mnet_host.name
** mnet.service.service_name rename to 'name'
** <font color="green">DM Done:</font> mnet.service.service_name rename to 'name'
** rename mdl_mnet_enrol_assignments.studentid to userid
** <font color="green">DM Done:</font> rename mdl_mnet_enrol_assignments.studentid to userid


* should some of our mnet/enrol stuff be in auth/sso?
* should some of our mnet/enrol stuff be in auth/sso?


* $MNET_CLIENT instead of $MNET
* <font color="green">DM Done:</font> $MNET_CLIENT instead of $MNET <font color="green">Note - we renamed to $MNET_REMOTE_CLIENT</font>
 
* <font color="green">ML Done:</font> Database: when we are done with schema changes, write upgrade.php


= Internals - correctness =  
= Internals - correctness =  


* walk our delta to check for required_param() and optional_param() without PARAM_TYPE
* <font color="green">ML Done: </font>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)'
   git-diff MOODLE_17_STABLE...master | pcregrep '\+.*(required_param|optional_param)'


* <font color="green">ML Done: </font>walk our delta to check for camelCase
* multi auth  
* multi auth  
** initial install should enable email-based self-reg and manual accts
** <font color="green">JH Done:</font> initial install should enable email-based self-reg and manual accts
** if they are disabled, it should _break_ and not allow users in
** <font color="green">JH Tested:</font> if they are disabled, it should _break_ and not allow users in
** update 1.7 -> 1.8 auth migration guide


* mnet rpc -  
* mnet rpc -  
** don't dispatch if module/plugin is disabled
** <font color="green">DM Done:</font> don't dispatch if module/plugin is disabled
** figure out handling of xml-rpc reported errors  
** <font color="green">ML Done:</font> figure out handling of xml-rpc reported errors  
** why does the xmlrpc client have to call it 'enrol/mnet/enrol/foo'? the 2nd instance of enrol is superfluous
** <font color="green">DM Done:</font> why does the xmlrpc client have to call it 'enrol/mnet/enrol/foo'? the 2nd instance of enrol is superfluous
** <font color="green">DM Done (Testing required):</font> key rotation
 


* enrol/mnet
* enrol/mnet
** available_courses() needs review
** <font color="green">ML Done: </font>available_courses() needs review
** enrol_user()/unenrol_user()  
** enrol_user()/unenrol_user()  
*** get rid of ob_ hack
*** get rid of ob_ hack
*** only unenrol if enrol ='mnet'
*** only unenrol if enrol ='mnet'
*** error handling
*** Error handling if xmlrpc reported error
*** Error handling if remote host does not have networking ok?
*** maybe implement a 'default role override' (low pri)
*** maybe implement a 'default role override' (low pri)


Line 52: Line 59:


* auth/mnet
* auth/mnet
** prevent jump if username === 'guest' or if mnethost!= localhost
** <font color="green">JH Done: </font>prevent jump if username === 'guest' or if mnethost!= localhost


* Review capabilities and privileges - and relationship with whitelist / blacklist
* Review capabilities and privileges - and relationship with whitelist / blacklist


* MAJOR - user.username uniqueness - check with MartinD
* <font color="green">JH Testing:</font> MAJOR - user.username uniqueness - check with MartinD


* Backup & REstore - check with Eloy
* Backup & REstore - check with Eloy
* Error handling if remote host does not have networking ok?


= Architecture / Design =
= Architecture / Design =


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


= UI =
= UI =
Line 73: Line 78:
* simplify mnet host configuration
* simplify mnet host configuration
** partially done - how do we bring the ability to run promiscuous?
** partially done - how do we bring the ability to run promiscuous?
** use submit-redirect scheme re-enable the back-button  
** <font color="green">DM Done:</font> use submit-redirect scheme re-enable the back-button  
** admin sidebar link should be Networking->Hosts
** <font color="green">DM Done:</font> admin sidebar link should be Networking->Hosts
* admin/mnet - do NOT show IDs anywhere in the page
* <font color="green">DM Done:</font> admin/mnet - do NOT show IDs anywhere in the page
** almost there!
* <font color="green">DM Done:</font> admin/mnet - make sure we trim trailing slashes at form input time, and also at RPC incoming call
* enrol/mnet -  
* enrol/mnet -  
** pull/cache enrolments from remote hosts
** pull/cache enrolments from remote hosts
Line 99: Line 104:
     move the files around.
     move the files around.


** Replace course / category selection in enrol/mnet/config.html with a separate page with 2 panes, similar to remote_enrolment.php
** <font color="green">JH Done:</font> 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
*** Storage of that info needs to be reworked
** consider splitting out log handling to a separate page for scalability (low pri)
** consider splitting out log handling to a separate page for scalability (low pri)
Line 116: Line 121:


* Content sharing
* Content sharing
** Come up with a simple + useful plan or defer
** <font color="red">ML: Defer</font> Come up with a simple + useful plan or defer


* Forum post mailings
* Forum post mailings
** Tweak read / reply URLs - possible?
** Tweak read / reply URLs - possible?
*** <font color="green">JH:</font> 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?
*** Other mailouts with links?


Line 128: Line 134:
** LOGINAS is broken on SP
** LOGINAS is broken on SP
** Think about gradebook service to export final grades
** Think about gradebook service to export final grades
[[Category:Developer]]
[[Category:Future]]
[[Category:Community hub]]

Latest revision as of 09:22, 23 December 2010

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