コード例 #1
0
 def test_deletePage(self):
     pages = event.getPagesByOwner(user.getUser("test"))
     event.deletePage(pages[0])
     self.assertIsNone(event.getPageById(pages[0].id))
     self.assertEqual(len(event.getPagesByOwner(user.getUser("test"))), 1)
     pages = event.getPagesByOwner(user.getUser("username"))
     eventid = pages[0].events[0].id
     self.assertIsNotNone(event.getEventById(eventid))
     event.deletePage(pages[0])
     self.assertIsNone(event.getEventById(eventid))
コード例 #2
0
def reEncryptReq(id):
    """Checks ownership and removes encryption key from session
    """
    event = getEventById(id)
    if not event is None and event.owner.username == current_username():
        del session["Passes"][str(id)]
        session.modified = True
        return ""
コード例 #3
0
def create_or_edit():
    """Create or update an event. If id is passed as a a query parameter then update
       the event corresponding to that query parameter.
    """
    error = None
    if request.method == 'POST':
        id = request.form.get('id')
        id = int(id) if id else None
        # Edit or create the event based on whether we have an id and also
        # the type of event that we have.
        name = request.form.get('name')
        owner = getUser(current_username()).id
        event_type = EventType(int(request.form.get('event_type')))
        description = request.form['description']
        startTime = momentToPyDatetime(
            request.form['start_time']
        ) if event_type == EventType.EVENT or event_type == EventType.REMINDER else None
        endTime = momentToPyDatetime(
            request.form['end_time']
        ) if event_type == EventType.EVENT else None
        password = request.form[
            'event_password'] if event_type == event_type.ENCRYPTED else None

        if id:
            editEvent(id,
                      name=name,
                      owner=owner,
                      event_type=event_type,
                      description=description,
                      start_time=startTime,
                      end_time=endTime,
                      password=password)
        else:
            createEvent(name=name,
                        owner=owner,
                        event_type=event_type,
                        description=description,
                        start_time=startTime,
                        end_time=endTime,
                        password=password)
        return redirect(url_for('events.index'))

    # Get an event if we are editing an event
    id = request.args.get('id')
    event = None
    if id:
        event = getEventById(int(id))
        if event.event_type == EventType.ENCRYPTED and not checkCachedEncrypted(
                event):
            #If this encrypted event hasn't had its password entered already, then send back to event page
            return redirect(url_for('events.index'))

    return render_template('events_create.html',
                           event=event,
                           username=current_username(),
                           EventType=EventType,
                           error=error,
                           checkCachedEncrypted=checkCachedEncrypted)
コード例 #4
0
def decryptReq(id):
    """Checks ownership and uses provided password to decrypt message
    """
    event = getEventById(id)
    if not event is None and event.owner.username == current_username(
    ) and not request.form['event_password'] is None:
        description = decrypt(event.description,
                              request.form['event_password'])
        res = {}
        res["sucess"] = not description is None
        if res["sucess"]:
            session['Passes'][str(id)] = request.form['event_password']
            session.modified = True
            res['data'] = description
        return jsonify(res)
コード例 #5
0
 def test_findById(self):
     event0 = event.createEvent("quick Note", 1, event.EventType.NOTE)
     self.assertEqual(event0, event.getEventById(event0.id))