| Commit message (Collapse) | Author | Age | Lines |
| |
|
| |
|
| |
|
|
|
|
|
| |
Add new reset action to admin participant.
Also introduced action buttons (delete and reset).
|
| |
|
|
|
|
|
|
|
|
| |
When creating a resource ECS returns a location header in its http
response. If the server port differs from 80 or 443 the server port will
be included in the location header, e.g.:
Location: http://localhost:8080/numlab/evaluations/1044199
|
|
|
|
| |
Changed filter class method to an instance method.
|
|
|
|
| |
Logging event creations.
|
|
|
|
| |
Forgot to commit the db migration.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Participants in /sys/mebmberships representation are now tagged with
their appropriate participant type:
main: mainparticipant
sub: subparticipant
anonym: anonymous participant
e.g.
[
{
"community": {
"name": "public",
"description": "For anonymous participants.",
"cid": 1
},
"participants": [
{
"pid": 2,
--> "type": "main",
"name": "Computation client",
"itsyou": true,
"description": "Computation client of NumLab service.",
"org": {
"abbr": "S",
"name": "Universität Stuttgart"
},
"mid": 1,
"email": "rudlof@rus.uni-stuttgart.de",
"dns": "nfldevvipecs.rus.uni-stuttgart.de"
},
...
This feature needs a database migration.
|
|
|
|
| |
The default filter for /sys/memberships is now mainparticipants=true
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now it's possible to filter /sys/memberships resource:
* /sys/memberships?mainparticipants=true
You get only memberships concerning mainparticipants (MPs). MPs are
participants which have to be registered/configured by hand over the
ECS Webinterface.
* /sys/memberships?subparticipants=true
You get only memberships concerning/containing subparticipants (SPs). SPs are
participants which are created dynamically by MPs.
* /sys/memberships?anonymous=true
You get only memberships concerning/containing anonymous participants (APs).
The creation of new APs automatically takes place
by every call to an ECS resource if the calling participant didn’t set
X-EcsAuthId or Cookie header. AP-Handling has to be activated
explicitly in the ECS configuration.
* /sys/memberships?all=true
You get all available memberships irrespectively of their type.
The default filter is set to "mainparticipants=true".
The filter could also be specified by a HTTP variable e.g.:
curl ... -H 'X-EcsQueryStrings: mainparticipants=true' http://.../sys/memberships
|
|
|
|
|
| |
Changed extended associations in community model to named scopes in
participant model.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For easier communication of a participant with its newly created
subparticipant I exchanged the community element with a memberships
element. Now the creating participant gets all necessary information of
its subparticipant to start communication right after creation. The
memberships element has the same structure as a resource representation
of /sys/memberships but there is only the newly created
subparticipant listed in the participants array (itsyou=true). The
/sys/memberships representation lists *all* participants (and
subparticipants) joining the same community.
After creating a subparticipant:
curl ... -H 'Content-Type: application/json' \
-X POST -d '{"realm":"tux","communities":["stephan","public"]}' \
https://.../sys/subparticipants
you get something like this as answer (example):
{
"description": "Created from \"Teacher client\" (pid:3)",
"community_selfrouting": false,
"realm": "tux",
"auth_ids": [
{
"desc": "Randomized authid",
"auth_id": "06e9506fa723b2353cbe4acc32a9a568"
}
],
"memberships": [
{
"participants": [
{
"email": "xaver@freeit.de",
"org": {
"abbr": "S",
"name": "Development FreeIT Suttgart"
},
"name": "Subparticipant (id:67)",
"mid": 190100,
"dns": "N/A",
"description": "Created from \"Teacher client\" (pid:3)",
"pid": 190376,
"itsyou": true
}
],
"community": {
"cid": 2,
"name": "devel",
"description": "Devel test community."
}
},
{
"participants": [
{
"email": "xaver@FreeIT.de",
"org": {
"abbr": "S",
"name": "Development FreeIT Stuttgart"
},
"name": "Subparticipant (id:67)",
"mid": 190101,
"dns": "N/A",
"description": "Created from \"Teacher client\" (pid:3)",
"pid": 190376,
"itsyou": true
}
],
"community": {
"cid": 1,
"name": "public",
"description": "For anonymous participants."
}
}
],
"name": "Subparticipant (id:67)",
"email": "xaver@freeit.de",
"events": true,
"dns": "N/A"
}
|
|
|
|
|
|
| |
It's not any more possible to use arbitrary authentication values in the Cookie
header. Now it's only possible to use anonymous cookie values in anomymous
Cookie header and subparticipant cookie values in subparticipant Cookie header.
|
|
|
|
|
| |
Moved authentication code for "authenticated participants" at the end of the
authentication queue again.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
When a participant wants to create a subparticipant and provides some
communities which this subparticipant should belong to, he is only allowed to
provide communities he joins on its own.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Moved authentication code into functions.
|
|
|
| |
To tag the ticket type we're now now postfixing ticket title.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Default ttl value for subparticipants being deleted is 10 days. Please
adjust to your needs directly in the source task file.
|
| |
|
| |
|
|
|
|
| |
Moved code from MembershipsController to Membership model.
|
|
|
|
| |
Don't forget to garbage collect anonymous participants in a cronjob.
|
|
|
|
|
| |
The boolean values of the attributes participant_events and selfrouting were
quoted. Of course this is not allowed by the JSON specification.
|
|
|
|
|
| |
If the requested resource is unmodified then render "head :not_modified" and
don't eval (blank) @render_cmd.
|
|
|
|
|
| |
Added ecs_custom to personIDtype.
Reordered personIDtype.
|
| |
|
| |
|
|
|
|
| |
Now we detect mime types like: "application/json; charset=utf-8" correct.
|
|
|
|
|
| |
Changed *_url routes to *_path routes.
Fixes #2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Every participant could GET and POST to this resource.
A GET might show this:
curl ... -H 'Content-Type: application/json' \
-X GET https://ecs.host.com/sys/configs
{
"participant_events": "true",
"resource_events": {
"/campusconnect/glossaries": true,
"/campusconnect/course_urls": true,
"/campusconnect/course_members": true,
"/campusconnect/wikis": true,
"/campusconnect/directory_trees": true,
"/campusconnect/learningmodules": true,
"/campusconnect/groups": true,
"/campusconnect/categories": true,
"/campusconnect/courselinks": true,
"/campusconnect/organisation_units": true,
"/campusconnect/files": true,
"/campusconnect/terms": true,
"/campusconnect/courses": true,
"/sys/auths": false
},
"selfrouting": "false"
}
Only if participant_events and the appropriate resource_events are true,
you will get an event.
It's also possible to set the two attributes participant_events and
selfrouting. Just make a POST such as:
curl ... -H 'Content-Type: application/json' -X -X POST \
-d '{"participant_events":true}' https://ecs.host.com/sys/configs
or
curl ... -H 'Content-Type: application/json' -X -X POST \
-d '{"selfrouting":false}' https://ecs.host.com/sys/configs
or
curl ... -H 'Content-Type: application/json' -X -X POST \
-d '{"selfrouting":false, "participant_events":true}' \
https://ecs.host.com/sys/configs
As you see, just set the attribute you want to set and make a POST.
You don't have to provide a receiver header, because the receiver is
implicitely the ECS.
|
|
|
|
|
|
|
| |
Up to now events could be turned on and off by resources. To turn on
events you still have to do it by resource but have additionally
the possibility to control it by participant. Only if both switches are
on, the participant will get events generated through the resource.
|
|
|
|
|
|
| |
E.g. you could call:
participant.sh delete /campusconnect/course_members
to delete iall messages in /campusconnect/course_members .
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
List all events:
participant.sh get /sys/events
Get oldest event (fifo):
participant.sh get /sys/events/fifo
Get and delete oldest event (fifo):
participant.sh delete /sys/events/fifo
FAQ:
Q: You want to delete all events.
A: Just call "participant.sh delete /sys/events/fifo" in a loop:
for i in `seq 10`; do ./participant.sh delete '/sys/events/fifo' ; done
This will get and delete always the oldest event. If there no more events
you will get back nothing. Just repeat the loop until you don't get anything
back.
|
|
|
|
|
| |
We should be able to set a role for administrative people outside of
groups.
|
| |
|
|
|
|
|
|
| |
With this script you can show and mass delete resource representations
of a participant. For a short help just call the script without any
options and parameters.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In my mail to cc-devel mailinglist[1] I wrote:
* We don't need a special "id" attribute for our groups. They are
enumerated implicitely, because they form a sequence. So we could
decide to virtually enumerate them by starting with 0 (zero), i.e. we
could identify the groups with a tuple of
("lectureID",<sequence number of group>), e.g.:
("lsfproxy.uni-stuttgart.de/campusconnect/courses/443889","0")
("lsfproxy.uni-stuttgart.de/campusconnect/courses/443889","1")
("lsfproxy.uni-stuttgart.de/campusconnect/courses/443889","2")
This is because the LMS doesn't give us an unique group id. We get only a
simple enumeration of the available groups. If the count of groups
changes than the enumeration changes.
With hope in the future it is wiser to have such an id.
[1] Date: Sun, 26 May 2013 21:23:30 +0200
From: Heiko Bernloehr <Heiko.Bernloehr@FreeIT.de>
To: campusconnect-devel@freeit.de
Subject: Re: [cc-devel] Simplified course resource
Reply-To: campusconnect-devel@freeit.de
|
| |
|