Exemple #1
0
    def post(self, request):

        if self.action == "get_user_names":
            data = {}
            if self.request.user.is_authenticated and user_is_resource_reviewer(request.user):
                userids = json.loads(request.POST.get("userids", "[]"))
                data = {u.id: u.username for u in User.objects.filter(id__in=userids)}
                return JSONResponse(data)

        if self.request.user.is_authenticated and self.request.user.username != "anonymous":

            user_details = self.get_user_details(request.user)

            context = self.get_context_data(
                main_script="views/user-profile-manager",
            )
            context["errors"] = []
            context["nav"]["icon"] = "fa fa-user"
            context["nav"]["title"] = _("Profile Manager")
            context["nav"]["login"] = True
            context["nav"]["help"] = {
                "title": _("Profile Editing"),
                "template": "profile-manager-help",
            }
            context["validation_help"] = validation.password_validators_help_texts()
            context["user_surveys"] = JSONSerializer().serialize(user_details["user_surveys"])
            context["identities"] = JSONSerializer().serialize(user_details["identities"])
            context["resources"] = JSONSerializer().serialize(user_details["resources"])

            user_info = request.POST.copy()
            user_info["id"] = request.user.id
            user_info["username"] = request.user.username
            user_info["password1"] = request.user.password
            user_info["password2"] = request.user.password

            form = ArchesUserProfileForm(user_info)

            if form.is_valid():
                user = form.save()
                try:
                    admin_info = settings.ADMINS[0][1] if settings.ADMINS else None
                    message = (
                        f"Your {settings.APP_NAME} profile was just changed.  If this was unexpected, please contact your "
                        f"{settings.APP_NAME} administrator{f' at {admin_info}.' if (admin_info and not str.isspace(admin_info)) else '.'}"
                    )
                    message = _(message)
                    user.email_user(_("Your " + settings.APP_NAME + " Profile Has Changed"), message)
                except:
                    logger.error("Error sending email", exc_info=True)
                request.user = user
            context["form"] = form

            return render(request, "views/user-profile-manager.htm", context)
Exemple #2
0
    def post(self, request):

        if self.action == 'get_user_names':
            data = {}
            if self.request.user.is_authenticated() and request.user.groups.filter(name='Resource Reviewer').exists():
                userids = [str(id) for id in request.POST.get('userids[]', [])]
                data = {u.id:u.username for u in User.objects.filter(id__in=userids)}
                return JSONResponse(data)

        if self.request.user.is_authenticated() and self.request.user.username != 'anonymous':

            user_details = self.get_user_details(request.user)

            context = self.get_context_data(
                main_script='views/user-profile-manager',
            )
            context['errors'] = []
            context['nav']['icon'] = 'fa fa-user'
            context['nav']['title'] = _('Profile Manager')
            context['nav']['login'] = True
            context['nav']['help'] = (_('Profile Editing'),'help/base-help.htm')
            context['help'] = 'profile-manager-help'
            context['validation_help'] = validation.password_validators_help_texts()
            context['user_surveys'] = JSONSerializer().serialize(user_details['user_surveys'])
            context['identities'] = JSONSerializer().serialize(user_details['identities'])
            context['resources'] = JSONSerializer().serialize(user_details['resources'])

            user_info = request.POST.copy()
            user_info['id'] = request.user.id
            user_info['username'] = request.user.username
            user_info['password1'] = request.user.password
            user_info['password2'] = request.user.password

            form = ArchesUserProfileForm(user_info)

            if form.is_valid():
                user = form.save()
                try:
                    admin_info = settings.ADMINS[0][1] if settings.ADMINS else ''
                    message = _('Your arches profile was just changed.  If this was unexpected, please contact your Arches administrator at %s.' % (admin_info))
                    user.email_user(_('You\'re Arches Profile Has Changed'), message)
                except Exception as e:
                    print e
                request.user = user
            context['form'] = form

            return render(request, 'views/user-profile-manager.htm', context)
Exemple #3
0
    def post(self, request):

        if self.action == "get_user_names":
            data = {}
            if self.request.user.is_authenticated and request.user.groups.filter(
                    name="Resource Reviewer").exists():
                userids = json.loads(request.POST.get("userids", "[]"))
                data = {
                    u.id: u.username
                    for u in User.objects.filter(id__in=userids)
                }
                return JSONResponse(data)

        if self.request.user.is_authenticated and self.request.user.username != "anonymous":

            user_details = self.get_user_details(request.user)

            context = self.get_context_data(
                main_script="views/user-profile-manager", )
            context["errors"] = []
            context["nav"]["icon"] = "fa fa-user"
            context["nav"]["title"] = _("Profile Manager")
            context["nav"]["login"] = True
            context["nav"]["help"] = {
                "title": _("Profile Editing"),
                "template": "profile-manager-help",
            }
            context[
                "validation_help"] = validation.password_validators_help_texts(
                )
            context["user_surveys"] = JSONSerializer().serialize(
                user_details["user_surveys"])
            context["identities"] = JSONSerializer().serialize(
                user_details["identities"])
            context["resources"] = JSONSerializer().serialize(
                user_details["resources"])

            user_info = request.POST.copy()
            user_info["id"] = request.user.id
            user_info["username"] = request.user.username
            user_info["password1"] = request.user.password
            user_info["password2"] = request.user.password

            form = ArchesUserProfileForm(user_info)

            if form.is_valid():
                user = form.save()
                try:
                    admin_info = settings.ADMINS[0][
                        1] if settings.ADMINS else ""
                    message = _(
                        "Your arches profile was just changed.  If this was unexpected, please contact your Arches administrator at %s."
                        % (admin_info))
                    user.email_user(_("You're Arches Profile Has Changed"),
                                    message)
                except Exception as e:
                    print(e)
                request.user = user
            context["form"] = form

            return render(request, "views/user-profile-manager.htm", context)