コード例 #1
0
    def form_schema(self):
        
        form_schema = EditNode.form_schema(self)
        password_member = form_schema.get_member("synchronization_password")
        
        if password_member:

            if User.encryption_method:

                order = form_schema.members_order = list(form_schema.members_order)
                pos = order.index("synchronization_password")

                if self.item.is_inserted:

                    change_password_member = schema.Boolean(
                        name = "change_password",
                        required = True,
                        default = False,
                        visible_in_detail_view = False
                    )
                    form_schema.add_member(change_password_member)
                    order.insert(pos, "change_password")
                    
                    password_member.exclusive = change_password_member

            # No encryption: edit passwords in plain sight
            else:
                password_member.edit_control = "cocktail.html.TextBox"

        return form_schema
コード例 #2
0
    def form_schema(self):
        form_schema = EditNode.form_schema(self)
        
        edit_control = form_schema.get_member("member_edit_control")
        if edit_control:
            edit_control.enumeration = self.item.edit_controls

        search_control = form_schema.get_member("member_search_control")
        if search_control:
            search_control.enumeration = self.item.search_controls

        return form_schema
コード例 #3
0
    def form_schema(self):

        form_schema = EditNode.form_schema(self)
        password_member = form_schema.get_member("password")

        if password_member:

            if self.item.encryption_method:

                order = form_schema.members_order = list(
                    form_schema.members_order)
                pos = order.index("password")

                password_conf_member = schema.String(
                    name="password_confirmation",
                    edit_control="cocktail.html.PasswordBox",
                    visible_in_detail_view=False,
                    required=password_member.required)
                form_schema.add_member(password_conf_member)
                order.insert(pos + 1, "password_confirmation")

                if self.item.is_inserted:

                    change_password_member = schema.Boolean(
                        name="change_password",
                        required=True,
                        default=False,
                        visible_in_detail_view=False)
                    form_schema.add_member(change_password_member)
                    order.insert(pos, "change_password")

                    password_member.exclusive = change_password_member
                    password_conf_member.exclusive = change_password_member

                @form_schema.add_validation
                def validate_password_confirmation(form_schema, value, ctx):
                    password = ctx.get_value("password")
                    password_confirmation = ctx.get_value(
                        "password_confirmation")

                    if password and password_confirmation \
                    and password != password_confirmation:
                        yield PasswordConfirmationError(
                            form_schema, value, ctx)

            # No encryption: edit passwords in plain sight
            else:
                password_member.edit_control = "cocktail.html.TextBox"

        return form_schema
コード例 #4
0
ファイル: fileeditnode.py プロジェクト: marticongost/woost
    def form_schema(self):

        form_schema = EditNode.form_schema(self)

        form_schema.add_member(
            FileUpload(
                "upload",
                async=True,
                async_uploader=async_uploader,
                async_upload_url="/async_upload",
                hash_algorithm="md5",
                get_file_destination=lambda upload: self.temp_file_path,
                member_group="content",
                required=not (self.item.is_inserted and self.item.file_name)))