Ejemplo n.º 1
0
def create_readtracking_on_userprofile_create(sender, instance, created,
                                              **kwargs):
    if created:
        instance.forum_group = Group.default_group()
        instance.save()

        ReadTracking.objects.create(profile=instance)
Ejemplo n.º 2
0
def add_group(request):
    if request.user.is_authenticated():
        json_obj = json.loads(request.body)
        group_name = json_obj['group_name']
        group_obj = Group(group_name=group_name)
        group_obj.save()
        return HttpResponse(json.dumps({
            "validation": "New Group created Successfully...",
            "status": True
        }),
                            content_type="application/json")
    else:
        return HttpResponse(json.dumps({
            "validation":
            "You are not logged in yet.Please login to continue."
        }),
                            content_type="application/json")
Ejemplo n.º 3
0
    def items(self):
        """
        Returns new posts in forums, which anonymous users can access
        """

        group = Group.anonymous_group()
        visible_forums_ids = list(group.permission_set.values_list('forum_id', flat=True))
        posts = Post.objects.get_visible_posts().\
                             filter(topic__forum__id__in=visible_forums_ids).\
                             order_by('-date').\
                             select_related()[:settings.FORUM_FEED_ITEMS_COUNT]

        return posts
Ejemplo n.º 4
0
def create_group(name, description, parent, parameter_names=None):
    try:
        group_type = GroupType.objects.first()
        group = Group(name=name,
                      description=description,
                      parent=parent,
                      type=group_type)
        group.save()
        # set permissions for group
        gp = GlobalPreferences.get()
        gp.group_type_order_filter.add(group.type)
        for profile in UserProfile.objects.all():
            GroupRoleMembership.objects.bulk_create([
                GroupRoleMembership(group=group, profile=profile, role=role)
                for role in Role.assignable_objects.all()
            ])
        group.save()
        if parameter_names:
            for parameter_name in parameter_names:
                add_parameter(object=group, parameter_name=parameter_name)
        return True, group
    except:
        return False, name
Ejemplo n.º 5
0
def test_send_update_ping(settings):
    with unittest.mock.patch.object(
            discourse_sso, "DiscourseSigner"
    ) as fake_discourse_signer_cls, unittest.mock.patch.object(
            requests, "post") as fake_send_post:
        fake_discourse_signer = fake_discourse_signer_cls.return_value
        fake_discourse_signer.sign.return_value = ("payload", "signature")

        user = UserFactory.create(
            email="*****@*****.**",
            username="******",
            full_name="Foo Bar",
            mc_username="******",
            gh_username="******",
            irc_nick="XxXmeepXxX",
            discord_tag="foobar#1234",
        )

        groups = {
            n: Group(name=n, internal_name=n, internal_only=False)
            for n in [
                "aardvark", "banana", "carrot", "gingerbread", "horseradish",
                "indigo"
            ]
        }
        Group.objects.bulk_create(groups.values())
        user.groups.set(groups[a] for a in ["aardvark", "banana", "carrot"])
        user.save()

        settings.SSO_ENDPOINTS = TEST_SSO_ENDPOINTS
        send_update_ping(user)
        django_rq.get_worker().work(burst=True)

        fake_send_post.assert_called_once_with(
            "http://discourse.example.com/admin/users/sync_sso",
            data={
                "sso": "payload",
                "sig": "signature",
                "api_key": "discourse-api-key",
                "api_username": "******"
            },
        )
        fake_discourse_signer.sign.assert_called_once_with({
            "nonce":
            str(user.id),
            "email":
            "*****@*****.**",
            "require_activation":
            "false",
            "external_id":
            user.id,
            "username":
            "******",
            "name":
            "Foo Bar",
            "custom.user_field_1":
            "meep",
            "custom.user_field_2":
            "XxXmeepXxX",
            "custom.user_field_3":
            "meeep",
            "custom.user_field_4":
            "foobar#1234",
            "moderator":
            False,
            "admin":
            False,
            "add_groups":
            "aardvark,banana,carrot",
            "remove_groups":
            "gingerbread,horseradish,indigo",
        })
Ejemplo n.º 6
0
def save_edit_account(request):
    if request.user.is_authenticated():
        json_obj = json.loads(request.body)
        accountInfo = json_obj['accountInfo']
        account_id = json_obj["account_id"]
        account_name = accountInfo.get("account_name")
        alias = accountInfo.get("alias")
        group = accountInfo.get("group")
        grouptype = group.get("id")
        first_name = accountInfo.get("firstName")
        last_name = accountInfo.get("lastName")
        email = accountInfo.get("email")
        address_line1 = accountInfo.get("addressLine1")
        address_line2 = accountInfo.get("addressLine2")
        city = accountInfo.get("city")
        state = accountInfo.get("state")
        country = accountInfo.get("country")
        pin_code = accountInfo.get("pincode")
        contact_no = accountInfo.get("mobileNo0")
        contact_no1 = accountInfo.get("mobileNo1")
        opening_balance = accountInfo.get("openingBalance")
        accounttype = accountInfo.get("accounttype")
        accountTypeOptionId = accounttype.get("id")
        user_obj = User.objects.get(id=request.user.id)

        accounttype_obj = AccountType.objects.get(
            optionType=accountTypeOptionId)

        group_obj = Group(optionType=grouptype)
        group_obj.save()
        account_obj = Account.objects.get(id=account_id)

        account_obj.account_name = account_name
        account_obj.first_name = first_name
        account_obj.last_name = last_name
        account_obj.alias = alias
        account_obj.email = email
        account_obj.address_line1 = address_line1
        account_obj.address_line2 = address_line2
        account_obj.contact_no = contact_no
        account_obj.contact_no1 = contact_no1
        account_obj.city = city
        account_obj.state = state
        account_obj.country = country
        account_obj.pin_code = pin_code
        account_obj.opening_balance = opening_balance
        account_obj.group = group_obj
        account_obj.accounttype = accounttype_obj
        account_obj.save()
        userdetail_obj = UserDetail.objects.get(user__id=request.user.id)
        userdetail_obj.account.add(account_obj)
        userdetail_obj.save()
        return HttpResponse(json.dumps({
            "validation": "Account details updated Successfully",
            "status": True
        }),
                            content_type="application/json")
    else:
        return HttpResponse(json.dumps({
            "validation":
            "You are not logged in yet.Please login to continue."
        }),
                            content_type="application/json")
Ejemplo n.º 7
0
def create_new_user_account(request):
    if request.user.is_authenticated():
        print request.body
        print request.user
        json_obj = json.loads(request.body)
        accountInfo = json_obj['accountInfo']
        account_name = accountInfo.get("account_name")
        alias = accountInfo.get("alias")
        group = accountInfo.get("group")
        grouptype = group.get("id")
        first_name = accountInfo.get("firstName")
        last_name = accountInfo.get("lastName")
        email = accountInfo.get("email")
        address_line1 = accountInfo.get("addressLine1")
        address_line2 = accountInfo.get("addressLine2")
        city = accountInfo.get("city")
        state = accountInfo.get("state")
        country = accountInfo.get("country")
        try:
            pin_code = accountInfo.get("pincode")
        except ValueError:
            return HttpResponse(json.dumps([{
                "validation": "Please Enter Valid PinCode.",
                "status": False
            }]),
                                content_type="application/json")
        contact_no = accountInfo.get("mobileNo0")
        contact_no1 = accountInfo.get("mobileNo1")
        opening_balance = accountInfo.get("openingBalance")
        accounttype = accountInfo.get("accounttype")
        accounttype = accounttype.get("id")
        user_obj = User.objects.get(id=request.user.id)

        accounttype_obj = AccountType(optionType=accounttype)
        accounttype_obj.save()

        group_obj = Group(optionType=grouptype)
        group_obj.save()

        account_obj = Account(first_name=first_name,
                              last_name=last_name,
                              email=email,
                              address_line1=address_line1,
                              city=city,
                              state=state,
                              country=country,
                              pin_code=pin_code,
                              contact_no=contact_no,
                              contact_no1=contact_no1,
                              account_name=account_name,
                              opening_balance=opening_balance,
                              group=group_obj,
                              accounttype=accounttype_obj)
        account_obj.save()

        userdetail_obj = UserDetail.objects.get(user__id=request.user.id)
        userdetail_obj.account.add(account_obj)
        userdetail_obj.save()
        return HttpResponse(json.dumps({
            "validation": "New Account created Successfully",
            "status": True
        }),
                            content_type="application/json")
    else:
        return HttpResponse(json.dumps({
            "validation":
            "You are not logged in yet.Please login to continue."
        }),
                            content_type="application/json")
Ejemplo n.º 8
0
def register_new_user(request):
    json_obj = json.loads(request.body)
    json_obj = json_obj['userInfo']

    if User.objects.filter(username=json_obj['userName']).exists():
        print "Username already Exist."
        return HttpResponse(json.dumps({
            "validation": "Username is already exist.",
            "status": False
        }),
                            content_type="application/json")
    username = json_obj['userName']
    first_name = json_obj['firstName']
    last_name = json_obj['lastName']

    password = json_obj['password']
    password1 = json_obj['confirmPassword']
    if password != password1:
        print "Passwords Are not Matching"
        return HttpResponse(json.dumps({
            "validation": "Passwords are not Matched",
            "status": False
        }),
                            content_type="application/json")
    email = validateEmail(json_obj['email'])
    if email != True:
        print "Email is already Exist."
        return HttpResponse(json.dumps({
            "validation": "Email is already exist.Try with another Email.",
            "status": False
        }),
                            content_type="application/json")
    else:
        email = json_obj['email']

    if json_obj['addressLine1'] is None:
        return HttpResponse(json.dumps({
            "validation": "Please Enter Your Address...!",
            "status": False
        }),
                            content_type="application/json")
    else:
        address_line1 = json_obj['addressLine1']
    address_line2 = json_obj['addressLine2']

    contact_no = json_obj['mobileNo0']
    contact_no = int(contact_no)
    contact_no = validate_mobile(str(contact_no))
    if contact_no == False:
        return HttpResponse(json.dumps([{
            "validation":
            "This mobile number is already used..please try with another one.",
            "status": False
        }]),
                            content_type="application/json")
    else:
        contact_no1 = json_obj['mobileNo1']
        city = json_obj['city']
        state = json_obj['state']
        country = json_obj['country']
        pin_code = json_obj['pincode']
        accounttype_obj = AccountType(optionType=1)
        accounttype_obj.save()
        group_obj_for_bank_acc = Group(optionType=0)
        group_obj_for_bank_acc.save()
        group_obj_for_cash_acc = Group(optionType=4)
        group_obj_for_cash_acc.save()
        bank_account_name = "My Bank Account"
        cash_account_name = "My Cash Account"
        bank_account_obj = Account(account_name=bank_account_name,
                                   first_name=first_name,
                                   last_name=last_name,
                                   contact_no=contact_no,
                                   address_line1=address_line1,
                                   city=city,
                                   state=state,
                                   country=country,
                                   pin_code=pin_code,
                                   accounttype=accounttype_obj,
                                   group=group_obj_for_bank_acc)
        bank_account_obj.save()
        cash_account_obj = Account(account_name=cash_account_name,
                                   first_name=first_name,
                                   last_name=last_name,
                                   contact_no=contact_no,
                                   address_line1=address_line1,
                                   city=city,
                                   state=state,
                                   country=country,
                                   pin_code=pin_code,
                                   accounttype=accounttype_obj,
                                   group=group_obj_for_cash_acc)
        cash_account_obj.save()
        user_obj = User(first_name=first_name,
                        last_name=last_name,
                        username=username,
                        email=email,
                        password=password)
        user_obj.set_password(password)
        user_obj.save()
        userdetail_obj = UserDetail(user=user_obj,
                                    address_line1=address_line1,
                                    address_line2=address_line2,
                                    contact_no=contact_no,
                                    city=city,
                                    state=state,
                                    country=country,
                                    pin_code=pin_code,
                                    contact_no1=contact_no1,
                                    bank_account=bank_account_obj,
                                    cash_account=cash_account_obj)
        userdetail_obj.save()
        print "Registration Successful"
        return HttpResponse(json.dumps({
            "validation": "Registration Successful.",
            "redirecturl": "#/login",
            "status": True
        }),
                            content_type="application/json")