示例#1
0
文件: photo.py 项目: abelenki/chrisw
  def post(self):
    upload_files = self.get_uploads()  # 'file' is file upload field in the form
    photo_url = None
    back_url = self.request.headers.get('Referer','/') #self.request.get("back_url", "/")
    max_size = int(self.request.get("max_size", 102400))
    
    if not upload_files:
      return redirect(back_url)
    
    blob_info = upload_files[0]
    
    user = get_current_user()
    
    logging.debug(" Got user %s 's avatar %d", user.username, blob_info.size)
    
    if user and blob_info.size <= max_size:
      
      from google.appengine.api import images
      
      blob_key = str(blob_info.key())
      photo_url = images.get_serving_url(blob_key)
      
      photo = Photo(blob_key=blob_key, url=photo_url)
      photo.put()
        
    else:
      blob_info.delete()
      logging.error("User's avatar is too large for %s", user.username)

    import urllib
    if photo_url:
      back_url = back_url + "?image_url=" + urllib.quote_plus(photo_url)

    return redirect(back_url)
示例#2
0
文件: ui.py 项目: frankk00/chrisw
    def __init__(self, model_obj):
        super(PermissionUI, self).__init__()

        if not model_obj:
            raise APIException("Can't find item. Wrong ID?")

        self.model_obj = model_obj
        self.model_user = get_current_user()
示例#3
0
文件: ui.py 项目: abelenki/chrisw
 def __init__(self, model_obj):
   super(PermissionUI, self).__init__()
   
   if not model_obj:
     raise APIException("Can't find item. Wrong ID?")
   
   self.model_obj = model_obj
   self.model_user = get_current_user()
示例#4
0
    def wrapper(self, *args, **kwargs):
        """docstring for wrapper"""

        if get_current_user() != Guest:
            return func(self, *args, **kwargs)
        else:
            import home
            return self.redirect(home.create_login_url(self.request.url))
示例#5
0
  def wrapper(self, *args, **kwargs):
    """docstring for wrapper"""

    if get_current_user() != Guest:
      return func(self, *args, **kwargs)
    else:
      import home
      return self.redirect(home.create_login_url(self.request.url))
示例#6
0
    def render_to_string(self):

        # add always needed info
        var_dict = self.var_dict
        # add login info
        from common.auth import get_current_user, Guest
        user = get_current_user()
        user_info = {'login_user': user, 'is_not_guest': user != Guest}
        var_dict.update(user_info)

        from home.models import Site
        site_info = {'site': Site.get_instance()}
        var_dict.update(site_info)

        from chrisw.helper.django_helper import render_to_string
        return render_to_string(self.name + ".html", self.var_dict)
示例#7
0
文件: ui.py 项目: abelenki/chrisw
  def wrapper(self, *args, **kwargs):
    """docstring for wrapper"""
    
    action = func(self, *args, **kwargs)

    # append the instance variable
    if hasattr(action, 'var_dict'):
      var_dict = action.var_dict
      var_dict.update(self.__dict__)
      # skip the keys
      for key in ('self', 'model_obj', 'model_user'):
        if var_dict.has_key(key): 
          del var_dict[key]

      # add permission info in vardict
      user = get_current_user()
      var_dict.update( inspect_permissions(self.model_obj, user) )
    
    return action
示例#8
0
文件: ui.py 项目: frankk00/chrisw
    def wrapper(self, *args, **kwargs):
        """docstring for wrapper"""

        action = func(self, *args, **kwargs)

        # append the instance variable
        if hasattr(action, 'var_dict'):
            var_dict = action.var_dict
            var_dict.update(self.__dict__)
            # skip the keys
            for key in ('self', 'model_obj', 'model_user'):
                if var_dict.has_key(key):
                    del var_dict[key]

            # add permission info in vardict
            user = get_current_user()
            var_dict.update(inspect_permissions(self.model_obj, user))

        return action
示例#9
0
    def post(self):
        upload_files = self.get_uploads(
        )  # 'file' is file upload field in the form
        photo_url = None
        back_url = self.request.headers.get(
            'Referer', '/')  #self.request.get("back_url", "/")
        max_size = int(self.request.get("max_size", 102400))

        if not upload_files:
            return redirect(back_url)

        blob_info = upload_files[0]

        user = get_current_user()

        logging.debug(" Got user %s 's avatar %d", user.username,
                      blob_info.size)

        if user and blob_info.size <= max_size:

            from google.appengine.api import images

            blob_key = str(blob_info.key())
            photo_url = images.get_serving_url(blob_key)

            photo = Photo(blob_key=blob_key, url=photo_url)
            photo.put()

        else:
            blob_info.delete()
            logging.error("User's avatar is too large for %s", user.username)

        import urllib
        if photo_url:
            back_url = back_url + "?image_url=" + urllib.quote_plus(photo_url)

        return redirect(back_url)
示例#10
0
 def quit(self):
     """docstring for quite"""
     self.group.quit(get_current_user())
     message = "You've been quited from the Group " + self.group.title
     return back()
示例#11
0
 def join(self):
     """docstring for join"""
     self.group.join(get_current_user())
     return back()
示例#12
0
 def __init__(self, user_stream_info):
   super(UserStreamUI, self).__init__(user_stream_info)
   self.user_stream_info = user_stream_info
   self.user = user_stream_info.user
   
   self.current_user = get_current_user()
示例#13
0
 def post(self):
   """docstring for post"""
   user = get_current_user()
   user_stream_info = UserStreamInfo.get_instance(user=user)
   return self.post_impl(UserStreamUI(user_stream_info))
示例#14
0
 def get(self):
   """docstring for get_impl"""
   user = get_current_user()
   if user.key() == Guest.key():
     return redirect(settings.DEFAULT_HOME)
   return redirect('/u/%d' % user.key().id())
示例#15
0
文件: db.py 项目: abelenki/chrisw
 elif hasattr(model, 'items'):
   items = model.items()
 elif isinstance(model, SIMPLE_TYPES) or model is None:
   return model
 else:
   logging.debug("Can't to dict item %s", model.__dict__)
   # temprary fix, need be recheck again, it's caused by django's 
   return str(model._proxy____args)
   
 if hasattr(model, 'can_visit_key'):
   check_key = model.can_visit_key
 else:
   check_key = lambda x, y : True # can be visited by default
 
 from common import auth
 user = auth.get_current_user()
 
 for key, prop in items:
   
   if not check_key(user, key):
     # can't be visited since privacy control
     continue
     
   try:
     value = getattr(model, key)
   except datastore_errors.Error:
     value = None
   except AttributeError:
     value = prop
   
   if value is None or isinstance(value, SIMPLE_TYPES):
示例#16
0
文件: db.py 项目: frankk00/chrisw
    elif hasattr(model, 'items'):
        items = model.items()
    elif isinstance(model, SIMPLE_TYPES) or model is None:
        return model
    else:
        logging.debug("Can't to dict item %s", model.__dict__)
        # temprary fix, need be recheck again, it's caused by django's
        return str(model._proxy____args)

    if hasattr(model, 'can_visit_key'):
        check_key = model.can_visit_key
    else:
        check_key = lambda x, y: True  # can be visited by default

    from common import auth
    user = auth.get_current_user()

    for key, prop in items:

        if not check_key(user, key):
            # can't be visited since privacy control
            continue

        try:
            value = getattr(model, key)
        except datastore_errors.Error:
            value = None
        except AttributeError:
            value = prop

        if value is None or isinstance(value, SIMPLE_TYPES):
示例#17
0
 def __init__(self, group):
     super(GroupUI, self).__init__(group)
     self.group = group
     self.current_user = get_current_user()
示例#18
0
 def post(self):
     """docstring for post"""
     user = get_current_user()
     user_stream_info = UserStreamInfo.get_instance(user=user)
     return self.post_impl(UserStreamUI(user_stream_info))
示例#19
0
 def join(self):
     """docstring for join"""
     self.group.join(get_current_user())
     return back()
示例#20
0
 def __init__(self, group):
     super(GroupUI, self).__init__(group)
     self.group = group
     self.current_user = get_current_user()
示例#21
0
 def get(self):
     """docstring for get_impl"""
     user = get_current_user()
     if user.key() == Guest.key():
         return redirect(settings.DEFAULT_HOME)
     return redirect('/u/%d' % user.key().id())
示例#22
0
 def __init__(self, topic):
     super(TopicUI, self).__init__(topic)
     self.topic = topic
     self.current_user = get_current_user()
示例#23
0
    def __init__(self, user_stream_info):
        super(UserStreamUI, self).__init__(user_stream_info)
        self.user_stream_info = user_stream_info
        self.user = user_stream_info.user

        self.current_user = get_current_user()
示例#24
0
文件: topic.py 项目: abelenki/chrisw
 def __init__(self, topic):
   super(TopicUI, self).__init__(topic)
   self.topic = topic
   self.current_user = get_current_user()
示例#25
0
 def __init__(self, group_site):
   super(GroupSiteUI, self).__init__(group_site)
   self.group_site = group_site
   self.user = get_current_user()
   self.group_info = UserGroupInfo.get_by_user(self.user)
示例#26
0
 def quit(self):
     """docstring for quite"""
     self.group.quit(get_current_user())
     message = "You've been quited from the Group " + self.group.title
     return back()
示例#27
0
文件: userui.py 项目: abelenki/chrisw
 def post(self):
   userui = UserUI(get_current_user())
   return userui.profile_post(self.request)
示例#28
0
 def post(self):
     userui = UserUI(get_current_user())
     return userui.profile_post(self.request)
示例#29
0
 def __init__(self, group_site):
     super(GroupSiteUI, self).__init__(group_site)
     self.group_site = group_site
     self.user = get_current_user()
     self.group_info = UserGroupInfo.get_by_user(self.user)