Exemple #1
0
 def share( self, trans, id, email="", use_panels=False ):
     """ Handle sharing with an individual user. """
     msg = mtype = None
     page = trans.sa_session.query( model.Page ).get( trans.security.decode_id( id ) )
     if email:
         other = trans.sa_session.query( model.User ) \
                                 .filter( and_( model.User.table.c.email==email,
                                                model.User.table.c.deleted==False ) ) \
                                 .first()
         if not other:
             mtype = "error"
             msg = ( "User '%s' does not exist" % email )
         elif other == trans.get_user():
             mtype = "error"
             msg = ( "You cannot share a page with yourself" )
         elif trans.sa_session.query( model.PageUserShareAssociation ) \
                 .filter_by( user=other, page=page ).count() > 0:
             mtype = "error"
             msg = ( "Page already shared with '%s'" % email )
         else:
             share = model.PageUserShareAssociation()
             share.page = page
             share.user = other
             session = trans.sa_session
             session.add( share )
             self.create_item_slug( session, page )
             session.flush()
             trans.set_message( "Page '%s' shared with user '%s'" % ( page.title, other.email ) )
             return trans.response.send_redirect( url_for( controller='page', action='sharing', id=id ) )
     return trans.fill_template( "/ind_share_base.mako",
                                 message = msg,
                                 messagetype = mtype,
                                 item=page,
                                 email=email,
                                 use_panels=use_panels )
Exemple #2
0
 def share(self, trans, id, email="", use_panels=False):
     """ Handle sharing with an individual user. """
     msg = mtype = None
     page = trans.sa_session.query(model.Page).get(self.decode_id(id))
     if email:
         other = trans.sa_session.query(model.User) \
                                 .filter(and_(model.User.table.c.email == email,
                                              model.User.table.c.deleted == false())) \
                                 .first()
         if not other:
             mtype = "error"
             msg = f"User '{escape(email)}' does not exist"
         elif other == trans.get_user():
             mtype = "error"
             msg = ("You cannot share a page with yourself")
         elif trans.sa_session.query(model.PageUserShareAssociation) \
                 .filter_by(user=other, page=page).count() > 0:
             mtype = "error"
             msg = f"Page already shared with '{escape(email)}'"
         else:
             share = model.PageUserShareAssociation()
             share.page = page
             share.user = other
             session = trans.sa_session
             session.add(share)
             self.slug_builder.create_item_slug(session, page)
             session.flush()
             page_title = escape(page.title)
             other_email = escape(other.email)
             trans.set_message(f"Page '{page_title}' shared with user '{other_email}'")
             return trans.response.send_redirect(url_for(f"/pages/sharing?id={id}"))
     return trans.fill_template("/ind_share_base.mako",
                                message=msg,
                                messagetype=mtype,
                                item=page,
                                email=email,
                                use_panels=use_panels)