aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeLines
* Change ECS garbage collections.HEADmasterccHeiko Bernloehr2016-02-12-3/+3
|
* Secure sessions.Heiko Bernloehr2016-01-27-1/+2
|
* Standard rails stack minus ParamsParser.Heiko Bernloehr2016-01-27-24/+5
|
* Add reset action button.Heiko Bernloehr2016-01-27-21/+131
| | | | | 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/+16
| | | | Logging event creations.
* Fix forgotten db migration.Heiko Bernloehr2016-01-27-0/+23
| | | | Forgot to commit the db migration.
* Type tags for /sys/memberships.Heiko Bernloehr2016-01-27-14/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
|
* Disable session cookies.Heiko Bernloehr2016-01-27-1/+0
|
* 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-4/+436
|
* Isolated authentication code (DRY).Heiko Bernloehr2016-01-27-12/+31
| | | | Moved authentication code into functions.
* Update README.mdfreeit2015-05-26-1/+1
| | | To tag the ticket type we're now now postfixing ticket title.
* Update README.mdfreeit2015-05-22-2/+2
|
* Update README.mdfreeit2015-05-22-6/+5
|
* Rename README README.md (mark down syntax).Heiko Bernloehr2015-05-22-1/+4
|
* New rake task ecs:gc_sub_participants.Heiko Bernloehr2015-05-22-0/+16
| | | | | Default ttl value for subparticipants being deleted is 10 days. Please adjust to your needs directly in the source task file.
* Ticket creation.freeit2015-05-22-1/+13
|
* Change initial /sys/auths postroute to false.Heiko Bernloehr2015-04-22-6/+6
|
* 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/+13
| | | | 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.
* Update course_members schema.Heiko Bernloehr2014-06-02-1/+1
| | | | | Added ecs_custom to personIDtype. Reordered personIDtype.
* Added personIDtype to course_members schema.Heiko Bernloehr2014-05-21-0/+1
|
* 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/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-3/+38
| | | | | | | 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 deleting whole resources in participants.sh .Heiko Bernloehr2013-08-22-2/+3
| | | | | | E.g. you could call: participant.sh delete /campusconnect/course_members to delete iall messages in /campusconnect/course_members .
* participant.sh now handles events.Heiko Bernloehr2013-08-22-1/+21
| | | | | | | | | | | | | | | | | | | 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.
* Bring back role outside of groups.Heiko Bernloehr2013-08-13-0/+1
| | | | | We should be able to set a role for administrative people outside of groups.
* Fixed typo.Heiko Bernloehr2013-08-13-2/+1
|
* Script for controlling a participant.Heiko Bernloehr2013-08-13-0/+202
| | | | | | 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.
* Bring back "id" attribute to groups in courses resource.Heiko Bernloehr2013-07-18-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* Changes in courses schema.Heiko Bernloehr2013-07-02-13/+47
|