Exemplo n.º 1
0
    def dashboard_authenticate(self, request):
        email = request.user_email
        password = request.password
        team_key = request.team_key

        accounts = []
        if email and password:
            users = User.get_all_user_by_email(email, md5(password), team_key=team_key)

            for user in users:
                if user:
                    team_key = user.account_type
                    team = Community.getCommunityFromTeamKey(team_key)
                    if team:
                        userTeamToken = get_user_team_token(email, password, team_key,
                                                            team.team_secret, user.display_name,
                                                            user.image_url)
                        account = AccountAuthenticateMessage(display_name=user.display_name,
                                                             image_url=user.image_url,
                                                             team_name=team.name,
                                                             team_key=team_key,
                                                             team_hash=team.team_hash,
                                                             user_team_token=json.dumps(userTeamToken),
                                                             role=UserRole.getRole(user, team))
                        accounts.append(account)

        return AccountAuthenticateListMessage(authenticated=True if len(accounts) else False, account_info=accounts)
Exemplo n.º 2
0
def is_auth_user_admin(headers=None, action_auth_user=None):
    is_admin = False
    user = auth_user(headers) if (not action_auth_user and headers) else action_auth_user
    if user:
        community = Community.getCommunityFromTeamKey(user.account_type)
        if community:
            role = UserRole.getRole(user, community)
            is_admin = role == UserRoleType.ADMIN

    return is_admin
Exemplo n.º 3
0
    def create_sdk_team(cls, message, pricing_plan=False, stripe_token=None):
        team_key = message.team_key
        app_name = message.app.name
        community_name = message.community_name or app_name
        plan = message.plan or PlanType.BASIC

        app = AppInfo.query().filter(AppInfo.lc_name == app_name.lower()).get()
        if not app:
            appinfo_message = AppInfoMessage()
            appinfo_message.name = app_name
            appinfo_message.icon_url = message.app.icon_url
            appinfo_message.version = message.app.version
            app = AppInfo.insert(appinfo_message)

        from helper.utils import md5
        community_message = CommunityMessage(name=community_name,
                                             team_key=team_key,
                                             team_secret=md5(community_name.lower()),
                                             plan=plan)
        community_message.user = UserMessage(user_email=message.admin_user.user_email,
                                             display_name=message.admin_user.display_name,
                                             password=message.admin_user.password)
        community, user = cls.insert(community_message, getCommunity=True)

        communities_message = []
        if community and app:
            if not app.key in community.apps:
                community.apps.append(app.key)
                community.put()

            # response message
            community_message = CommunityAdminMasterMessage()
            community_message.community_name = community.name
            community_message.team_key = community.team_key
            community_message.team_secret = community.team_secret
            # community_message.team_hash = community.team_hash
            community_message.app_name = app.name
            community_message.app_icon = app.icon_url

            community_message.users = []
            from model.userrole import UserRole

            user_message = UserAdminMasterMessage()
            user_message.display_name = user.display_name
            user_message.user_email = user.user_email
            user_message.password_present = True if user.password else False
            user_message.role = UserRole.getRole(user, community)
            user_message.image_url = user.image_url

            if community.circles:
                user_message.circle = community.circles.get(str(UserRole.getCircleLevel(user, community)))

            community_message.users.append(user_message)
            communities_message.append(community_message)
            registration_successful = True

            if pricing_plan:
                if stripe_token:
                    payment_success = StripePayment.create_charge(stripe_token, community.key, plan)
                    if not payment_success:
                        registration_successful = False
                else:
                    registration_successful = False

            if registration_successful:
                from helper.utils import send_created_team_email
                from helper.utils import send_access_team_email
                send_created_team_email(community.name, user.display_name)
                send_access_team_email(user.user_email, community.team_hash,
                                       community.name, community.team_key,
                                       community.team_secret)
            else:
                community.key.delete()
                communities_message = []

        return communities_message