示例#1
0
文件: user.py 项目: AnneGilles/c3sar
def user_view(request):
    user_id = request.matchdict['user_id']
    user = User.get_by_user_id(user_id)

    if isinstance(user, NoneType):
        return HTTPFound(location=route_url('not_found', request))

    # calculate for next/previous navigation
    max_id = User.get_max_id()
    # previous
    if user.id == 1:            # if looking at first id
        prev_id = max_id        # --> choose highest db row, 'wrap around'
    else:                       # if looking at any other id
        prev_id = user.id - 1   # --> choose previous
    # next
    if user.id != max_id:       # if not on highest id
        next_id = user.id + 1   # --> choose next
    elif user.id == max_id:     # if highest id
        next_id = 1             # --> choose first id ('wrap around'))

    # show who is watching. maybe we should log this ;-)
    viewer_username = authenticated_userid(request)

    return {
        'blank': 'blank',
        'user': user,
        'viewer_username': viewer_username,
        'prev_id': prev_id,
        'next_id': next_id,
        }
示例#2
0
 def test_get_by_user_id(self):
     if DEBUG:  # pragma: no cover
         print "----- this is UserModelTests.test_get_by_user_id"
     instance = self._makeOne()
     self.session.add(instance)
     self.session.flush()  # to get the id from the db
     from c3sar.models import User
     result = User.get_by_user_id(1)
     self.assertEqual(instance.username, 'SomeUsername')
     self.assertEqual(result.username, 'SomeUsername')
示例#3
0
文件: user.py 项目: AnneGilles/c3sar
def user_set_default_license(request):
    """
    let users change some of their details
    """
    dbsession = DBSession()

    user_id = request.matchdict['user_id']
    user = User.get_by_user_id(user_id)

    form = Form(request, schema=UserDefaultLicenseSchema, obj=user)

    if 'form.submitted' in request.POST and form.validate():
        request.session.flash('form validated!')

    return {
        'the_user_id': user_id,
        'the_username': user.username,
        'form': FormRenderer(form),
        }
示例#4
0
文件: user.py 项目: AnneGilles/c3sar
def user_profile(request):
    user_id = request.matchdict['user_id']
    user = User.get_by_user_id(user_id)

    # calculate for next/previous navigation
    prev_id = int(user_id) - 1
    next_id = int(user_id) + 1
    # ToDo: what if foo_id == 0 or nonexistant?
    # maybe use template logic to not show prev-next-link?
    # maybe try to figure out max_id? what is cheaper? just fail/404?
    # we need the 404 anyway, if user picks random url/user_id

    # show who is watching. maybe we should log this ;-)
    viewer_username = authenticated_userid(request)

    return {
        'user': user,
        'viewer_username': viewer_username,
        'prev_id': prev_id,
        'next_id': next_id,
        }
示例#5
0
 def __getitem__(self, key):
     user = User.get_by_user_id(key)
     user.__parent__ = self
     user.__name__ = key
     return user
示例#6
0
文件: user.py 项目: AnneGilles/c3sar
    DEBUG = False

    if not has_permission('editUser', request.context, request):
        #print "NOT has_permission !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
        request.message = "You do not have permissions to edit this user!"
        raise HTTPForbidden

   # if no user_id in URL and not logged in, tell user to login

    try:
        user_id = request.matchdict['user_id']
    except KeyError, ke:
        #print ke
        return HTTPFound(location=request.route_url('not_found'))

    user = User.get_by_user_id(user_id)

    if user is None:
        msg = "User was not founf in database."
        return HTTPFound(location=request.route_url('not_found'))

    form = Form(request, schema=UserSettingsSchema, obj=user)

    if 'form.submitted' in request.POST and not form.validate():
        # form didn't validate
        request.session.flash('Please check the form below for errors!')
        if DEBUG:  # pragma: no cover
            print "submitted but not validated!"

    if 'form.submitted' in request.POST and form.validate():
        # ready for changing database entries!