aboutsummaryrefslogtreecommitdiff
path: root/app
Commit message (Collapse)AuthorAgeLines
* Add reset action button.Heiko Bernloehr2016-01-27-18/+126
| | | | | Add new reset action to admin participant. Also introduced action buttons (delete and reset).
* Change flash messages of create and destroy participants.Heiko Bernloehr2016-01-27-14/+15
|
* Add server port to location header.Heiko Bernloehr2016-01-27-0/+1
| | | | | | | | 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
* Code rework.Heiko Bernloehr2016-01-27-3/+3
| | | | Changed filter class method to an instance method.
* Logging-Observer.Heiko Bernloehr2016-01-27-0/+15
| | | | Logging event creations.
* Type tags for /sys/memberships.Heiko Bernloehr2016-01-27-13/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Fix default memberships filter.Heiko Bernloehr2016-01-27-1/+1
| | | | The default filter for /sys/memberships is now mainparticipants=true
* Query filter for /sys/memberships.Heiko Bernloehr2016-01-27-3/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Code reworking.Heiko Bernloehr2016-01-27-33/+27
| | | | | Changed extended associations in community model to named scopes in participant model.
* Memberships element added.Heiko Bernloehr2016-01-27-3/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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" }
* Additional tests authenticating as anounymous or subparticipant.Heiko Bernloehr2016-01-27-4/+4
| | | | | | 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.
* Fixed anonymous authentication error.Heiko Bernloehr2016-01-27-6/+6
| | | | | Moved authentication code for "authenticated participants" at the end of the authentication queue again.
* Changed events default to true on creating subparticipants.Heiko Bernloehr2016-01-27-1/+1
|
* Fixed subparticipant update.Heiko Bernloehr2016-01-27-1/+1
|
* Check for valid communities.Heiko Bernloehr2016-01-27-20/+51
| | | | | | 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.
* Check for authenticated subparticipants.Heiko Bernloehr2016-01-27-6/+45
|
* Check for authenticated participants first.Heiko Bernloehr2016-01-27-6/+6
|
* Check if json_data is a hash.Heiko Bernloehr2016-01-27-1/+3
|
* WIP: subparticipants.Heiko Bernloehr2016-01-27-1/+278
|
* Isolated authentication code (DRY).Heiko Bernloehr2016-01-27-12/+31
| | | | Moved authentication code into functions.
* Code rework.Heiko Bernloehr2015-01-14-20/+28
| | | | Moved code from MembershipsController to Membership model.
* Moved gc of anonymous participants to rake task.Heiko Bernloehr2014-07-30-12/+3
| | | | Don't forget to garbage collect anonymous participants in a cronjob.
* Fixed representation of /sys/configs.Heiko Bernloehr2014-06-27-2/+2
| | | | | The boolean values of the attributes participant_events and selfrouting were quoted. Of course this is not allowed by the JSON specification.
* Check for blank @render_cmd.Heiko Bernloehr2014-06-24-4/+4
| | | | | If the requested resource is unmodified then render "head :not_modified" and don't eval (blank) @render_cmd.
* Changed info logging while participant authentication.Heiko Bernloehr2014-05-07-1/+3
|
* Changed mime type detection in configs_controller.Heiko Bernloehr2014-05-07-1/+1
| | | | Now we detect mime types like: "application/json; charset=utf-8" correct.
* nginx has trouble with some linksHeiko Bernloehr2014-05-07-41/+41
| | | | | Changed *_url routes to *_path routes. Fixes #2
* New resource /sys/configsHeiko Bernloehr2014-05-07-0/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Turn on/off events by participants.Heiko Bernloehr2014-05-07-2/+21
| | | | | | | 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.
* Fixed postrouting for anonymous participants.Heiko Bernloehr2013-06-04-1/+0
|
* Missing headers when POST on resource queue.Heiko Bernloehr2013-06-04-4/+12
| | | | | | | | 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.
* Changed reusing initial events.Heiko Bernloehr2013-03-11-9/+32
| | | | | A previously created event is now only reused (touching updated_at) when it is the last on the participants event queue.
* Delete events when leaving community.Heiko Bernloehr2013-03-11-0/+23
| | | | | | 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").
* Postrouting when entering community.Heiko Bernloehr2013-03-11-23/+15
| | | | | The postrouting after creating a new participant was removed and is now done when entering a community.
* Touching "updated_at" attribute of initial event.Heiko Bernloehr2013-02-24-2/+12
| | | | | | | | 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.
* Prevent message deletion.Heiko Bernloehr2013-02-07-1/+1
| | | | | | | | | | 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.
* Fixed garbage collection of auth tokens.Heiko Bernloehr2013-02-02-3/+4
|
* Changed security fix for redirects.Heiko Bernloehr2013-01-31-3/+0
| | | | | Now participants could create auth tokens with both "url" and "realm" attributes (again).
* Changed ordering in admin organization list view.Heiko Bernloehr2013-01-11-3/+3
|
* Fixed ordering in admin list views.Heiko Bernloehr2013-01-11-5/+5
| | | | Ignoring case while sorting.
* Ordering admin views.Heiko Bernloehr2013-01-11-14/+14
| | | | | List views of communities, organizations, participants and ressources are now ordered.
* Group resources list by namespace.Heiko Bernloehr2013-01-11-58/+51
|
* Group participants list by organization.Heiko Bernloehr2013-01-11-20/+22
|
* /sys/events/fifo provides now count query parameter.Heiko Bernloehr2012-12-13-1/+2
| | | | | | | 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.
* Moved gc auth code to auths model.Heiko Bernloehr2012-11-29-17/+52
| | | | Further made some testcode for auths handling.
* Changed security fix for redirects.Heiko Bernloehr2012-11-15-4/+2
| | | | | When creating authorization token the ECS only checks if exactly one of the realm or url parameter is present.
* Introduced security fix for redirects.Heiko Bernloehr2012-11-14-5/+24
| | | | | | | | | | | | 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
* Fixed returned Content-Type header.Heiko Bernloehr2012-11-14-3/+3
| | | | Now you get get the correct Content-Type header after resource creation.
* Fix deleting participants.Heiko Bernloehr2012-11-12-1/+1
|
* Fix postrouting exception.Heiko Bernloehr2012-11-10-5/+6
| | | | | | | | 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.