Ejemplo n.º 1
0
def getCommunityApps(community_id=None, team_key=None, app_count=None):
    if community_id:
        community = Community.get_by_id(community_id)
    elif team_key:
        community = Community.query(Community.team_key == team_key).get()

    return community.apps[0:app_count] if app_count else community.apps
Ejemplo n.º 2
0
def getAppAndCommunity(message, user):
    if message.team_key:
        community = Community.getCommunityFromTeamKey(team_key=message.team_key)
        appinfo = getAppInfo(community.key.id())

    elif message.app_name:
        appinfo = AppInfo.get(name=message.app_name, platform=message.platform_type)
        community = None

        if appinfo is None:
            appInfoMessage = AppInfoMessage(name=message.app_name, version=message.app_version,
                                            platform=message.platform_type)
            appinfo = AppInfo.insert(appInfoMessage)
        else:
            app_community = getCommunityForApp(id=appinfo.key.id())
            if app_community and isMember(app_community, user):
                community = app_community

    elif message.community_name:
        community_id = Community.getCommunity(community_name=message.community_name).id
        community = Community.get_by_id(community_id)
        appinfo = getAppInfo(community_id)

    else:
        raise endpoints.BadRequestException("Please specify a community or app")

    return appinfo, community
Ejemplo n.º 3
0
    def edit_welcome_msg(self, request):
        community = Community.get_by_id(request.id)

        if community:
            community.welcome_msg = request.welcome_msg
            community.put()
            return ResponseMessage(success=True)
        else:
            return ResponseMessage(success=False)
Ejemplo n.º 4
0
    def community_user_list(cls, community_id=None, community_key=None, only_managers=False):
        if (not community_key) and community_id:
            community_key = Community.get_by_id(community_id).key

        users = []
        if community_key:
            query = cls.query().filter(cls.community == community_key)
            if only_managers:
                query = query.filter(cls.role == UserRoleType.MANAGER)
            users = query.fetch()

        return users
Ejemplo n.º 5
0
    def edit_user_role(self, request):
        user = get_user_from_request(user_id=request.user_id, user_email=request.user_email)
        community = Community.get_by_id(request.community_id)
        resp = None

        if community:
            if user:
                resp = UserRole.edit(user, community, request.role)
            elif request.include_invite:
                resp = Invite.change_user_role(request.user_email, community, request.role)

        return ResponseMessage(success=True if resp else False)
Ejemplo n.º 6
0
    def delete_user(self, request):
        user = get_user_from_request(user_id=request.user_id, user_email=request.user_email)
        community = Community.get_by_id(request.community_id)
        success = False

        if community:
            if user:
                UserRole.delete(user, community)
                success = True
            elif request.include_invite:
                Invite.delete(request.user_email, community)
                success = True

        return ResponseMessage(success=success)
Ejemplo n.º 7
0
    def anno_list(self, request):
        """
        Exposes an API endpoint to retrieve a list of anno.
        """
        user = auth_user(self.request_state.headers)

        limit = 10
        if request.limit is not None:
            limit = request.limit

        is_plugin = request.is_plugin or False

        curs = None
        if request.cursor is not None:
            try:
                curs = Cursor(urlsafe=request.cursor)
            except BadValueError:
                raise endpoints.BadRequestException('Invalid cursor %s.' % request.cursor)

        select_projection = None
        if request.select is not None:
            select_projection = request.select.split(',')

        if request.query_type == AnnoQueryType.CREATED:
            return Anno.query_by_app_by_created(request.app, limit, select_projection, curs, user)
        elif request.query_type == AnnoQueryType.VOTE_COUNT:
            return Anno.query_by_vote_count(request.app, user)
        elif request.query_type == AnnoQueryType.FLAG_COUNT:
            return Anno.query_by_flag_count(request.app, user)
        elif request.query_type == AnnoQueryType.ACTIVITY_COUNT:
            return Anno.query_by_activity_count(request.app, user)
        elif request.query_type == AnnoQueryType.LAST_ACTIVITY:
            return Anno.query_by_last_activity(request.app, user)
        elif request.query_type == AnnoQueryType.COUNTRY:
            return Anno.query_by_country(request.app, user)
        elif request.query_type == AnnoQueryType.COMMUNITY:
            community = Community.get_by_id(request.community)
            return Anno.query_by_community(community, limit, select_projection, curs, user)
        elif request.query_type == AnnoQueryType.APP:
            app = AppInfo.get(request.app)
            return Anno.query_by_app(app, limit, select_projection, curs, user)
        else:
            return Anno.query_by_page(limit, select_projection, curs, user, is_plugin)
Ejemplo n.º 8
0
    def create(cls, message, creator):
        community_name = ""
        community = Community.get_by_id(message.community)
        invitation_created = cls.query(ndb.AND(cls.email == message.email,
                                               cls.community == community.key)
                                       ).count()

        if community and not invitation_created:
            if message.role is None:
                message.role = UserRoleType.MEMBER

            if message.invite_msg is None:
                message.invite_msg = community.welcome_msg

            invite_hash = str(uuid.uuid4())
            entity = cls(name=message.name, email=message.email, role=message.role,
                         invite_msg=message.invite_msg, invite_hash=invite_hash,
                         community=community.key, creator=creator.key)
            entity.put()

            if entity:
                community_name = community.name

        return community_name
Ejemplo n.º 9
0
 def list_by_community(cls, community_id):
     return cls.query(cls.community == Community.get_by_id(community_id).key).fetch()