| 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
| |
There were missing headers X-EcsSender and X-EcsReceiverCommunities
when accessing a resource through a POST on its queue mode or a
DELETE. This was caused by deleting the relationships between message
memberships before composing the headers. To prevent a double rendering
error it was also necessary to devide the show_render method.
|
|
|
|
|
| |
A previously created event is now only reused (touching updated_at) when
it is the last on the participants event queue.
|
|
|
|
|
|
| |
A participant leaving a community will receive destroyed events for all
messages addressed to the leaving community and all messages addressed
directly at him which he has not yet deleted (still in his "queue").
|
|
|
|
|
| |
The postrouting after creating a new participant was removed and is now
done when entering a community.
|
|
|
|
|
|
|
|
| |
If there is already a pending event describing a change of a message, don't
create another one. Instead only touch the "updated_at" attribute of the event.
In the participant show page there is now the "updated_at" time of the
event showed.
|
|
|
|
|
|
|
|
|
|
| |
Scenario:
Owner deletes his message for which he is concurrently a receiver
This should only be possible until he clears its receiver queue. Then
the next DELETE operation removes the message from ECS and also destroys
all other receiver references as it would be happened if the message
owner had not even addressed itself.
|
| |
|
|
|
|
|
| |
Now participants could create auth tokens with both "url" and "realm"
attributes (again).
|
| |
|
|
|
|
| |
Ignoring case while sorting.
|
|
|
|
|
| |
List views of communities, organizations, participants and ressources
are now ordered.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Now you can call
curl .... -X POST https://server/sys/events/fifo?count=10
which returns a list of max. 10 events and concurrently deletes them
server side.
|
|
|
|
| |
Further made some testcode for auths handling.
|
|
|
|
|
| |
When creating authorization token the ECS only checks if exactly one of
the realm or url parameter is present.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now redirects are integrity secured by sha1 message digest.
A redirecting participant uses the /sys/auths resource realm
attribute to store a message digest over all relevant
redirect parameters (for details see [1]). The target
participant uses this message digest again and verifies the
integrity of the received redirect parameters
(Location-Header).
[1] see ECSA documentation at ECS->System resources->Auths
|
|
|
|
| |
Now you get get the correct Content-Type header after resource creation.
|
| |
|
|
|
|
|
|
|
|
| |
When creating new participants and then postrouting messages i forgot to
check if rec_mids was empty. If so this means the message in question
must not be postrouted. Otherwise there will be thrown an
Ecs::MissingReceiverHeaderException exception and all further
possibly necessary postroutings will stop.
|