Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 19238d86

Von Werner Hahn vor mehr als 7 Jahren hinzugefügt

  • ID 19238d86ca6150203fa3877bbe1d809d103dce67
  • Vorgänger 76ddf1f4
  • Nachfolger a89dde52

Shopmodul: 3 Rechte für das Shopmodul
Shopartikel anlegen und bearbeiten,
Shopbestellugen holen und bearbeiten
Shopkonfiguration bearbeiten

Unterschiede anzeigen:

SL/Controller/ShopOrder.pm
21 21
  'scalar --get_set_init' => [ qw(shop_order shops transferred js) ],
22 22
);
23 23

  
24
__PACKAGE__->run_before('check_auth');
24 25
__PACKAGE__->run_before('setup');
25 26

  
26 27
use Data::Dumper;
......
224 225

  
225 226
sub setup {
226 227
  my ($self) = @_;
227
  $::auth->assert('invoice_edit');
228

  
228
  $::auth->assert('shop_part_edit');
229 229
  $::request->layout->use_javascript("${_}.js")  for qw(kivi.ShopOrder);
230 230
}
231 231

  
232
sub check_auth {
233
  $::auth->assert('shop_part_edit');
234
}
232 235
#
233 236
# Helper
234 237
#
SL/Controller/ShopPart.pm
335 335
}
336 336

  
337 337
sub check_auth {
338
  return 1; # TODO: implement shop rights
339
  # $::auth->assert('shop');
338
  $::auth->assert('shop_part_edit');
340 339
}
341 340

  
342 341
sub init_shop_part {
SL/InstallationCheck.pm
39 39
  { name => "JSON",                                url => "http://search.cpan.org/~makamaka",   debian => 'libjson-perl' },
40 40
  { name => "List::MoreUtils", version => '0.21',  url => "http://search.cpan.org/~vparseval/", debian => 'liblist-moreutils-perl' },
41 41
  { name => "List::UtilsBy",                       url => "http://search.cpan.org/~pevans/",    debian => 'liblist-utilsby-perl' },
42
  { name => "LWP::Authen::Digest",                 url => "http://search.cpan.org/~gaas/",      debian => 'libwww-perl', dist_name => 'libwww-perl' },
43
  { name => "LWP::UserAgent",                      url => "http://search.cpan.org/~gaas/",      debian => 'libwww-perl', dist_name => 'libwww-perl' },
42 44
  { name => "Params::Validate",                    url => "http://search.cpan.org/~drolsky/",   debian => 'libparams-validate-perl' },
43 45
  { name => "PBKDF2::Tiny",    version => '0.005', url => "http://search.cpan.org/~arodland/", },
44 46
  { name => "PDF::API2",       version => '2.000', url => "http://search.cpan.org/~areibens/",  debian => 'libpdf-api2-perl' },
doc/UPGRADE
4 4

  
5 5
** BITTE FERTIGEN SIE VOR DEM UPGRADE EIN BACKUP IHRER DATENBANK(EN) AN! **
6 6

  
7
Upgrade auf v3.5.1
8

  
9
* Neue Perlabhängigkeiten
10

  
11
  * LWP::Authen::Digest für WebshopApi
12
  * LWP::UserAgent für WebshopApi
13

  
7 14
Upgrade auf v3.5.0
8 15
===========================
9 16

  
locale/de/all
24 24
  '#1 proposal(s) saved.'       => '#1 Vorschläge gespeichert.',
25 25
  '#1 proposal(s) with #2 invoice(s) saved.' => '#1 Vorschlag(e) mit #2 Rechnung(en) abgespeichert',
26 26
  '#1 section(s)'               => '#1 Abschnitt(e)',
27
  '#1 shoporders has been fetched' => '#1 Shopbestellungen wurden geholt',
28 27
  '#1 text block(s) back'       => '#1 Textlock/-blöcke vorne',
29 28
  '#1 text block(s) front'      => '#1 Textblock/-blöcke hinten',
30 29
  '%'                           => '%',
......
647 646
  'Contrary to Reduced Master Data this will be shown as discount in records.' => 'Im Gegensatz zu Abschlag wird der Rabatt in Belegen ausgewiesen',
648 647
  'Conversion of "birthday" contact person attribute' => 'Umstellung des Kontaktpersonenfeldes "Geburtstag"',
649 648
  'Conversion to PDF failed: #1' => 'Konvertierung zu PDF schlug fehl: #1',
649
  'Conversion:'                 => 'Konversiom',
650 650
  'Converting to deliveryorder' => 'Konvertiere zu Lieferschein',
651 651
  'Copies'                      => 'Kopien',
652 652
  'Copy'                        => 'Kopieren',
......
703 703
  'Create and edit sales delivery orders' => 'Lieferscheine für Kunden erfassen und bearbeiten',
704 704
  'Create and edit sales orders' => 'Auftragsbestätigungen erfassen und bearbeiten',
705 705
  'Create and edit sales quotations' => 'Angebote erfassen und bearbeiten',
706
  'Create and edit shopparts'    => 'Webshopartikel anlegen und bearbeiten',
706 707
  'Create and edit vendor invoices' => 'Eingangsrechnungen erfassen und bearbeiten',
708
  'Create and edit webshops'    => 'Webshopeinstellungen bearbeiten',
707 709
  'Create and print all invoices' => 'Alle Rechnungen erzeugen und ausdrucken',
708 710
  'Create and print invoices'   => 'Rechnungen erzeugen und ausdrucken',
709 711
  'Create and print invoices for all delivery orders matching the filter' => 'Rechnungen für alle den Suchkriterien entsprechenden Lieferscheine erzeugen und ausdrucken',
......
733 735
  'Created on'                  => 'Erstellt am',
734 736
  'Creating Documents'          => 'Erzeuge Dokumente',
735 737
  'Creating invoices'           => 'Erzeuge Rechnungen',
736
  'Creating orders'             => 'erstelle Äufträge',
737 738
  'Creating the PDF failed:'    => 'PDF-Erzeugung fehlgeschlagen:',
738 739
  'Creation Date'               => 'Erstelldatum',
739 740
  'Credit'                      => 'Haben',
......
1403 1404
  'From'                        => 'Von',
1404 1405
  'From Date'                   => 'Von',
1405 1406
  'From bin'                    => 'Ausgelagert',
1407
  'From shop #1 :  #2 shoporders has been fetched' => '#2 Bestellungen von Webshop #2 geholt',
1406 1408
  'From this version on a new feature is available.' => 'Ab dieser Version ist ein neues Feature verfügbar.',
1407 1409
  'From this version on it is necessary to name a default value.' => 'Ab dieser Version benötigt kivitendo eine Standardwährung.',
1408 1410
  'From this version on the partnumber of services, articles and assemblies have to be unique.' => 'Ab dieser Version müssen Artikelnummern eindeutig vergeben werden.',
......
1437 1439
  'Generate and print sales delivery orders' => 'Erzeuge und drucke Lieferscheine',
1438 1440
  'Generic Tax Report'          => 'USTVA Bericht',
1439 1441
  'Germany'                     => 'Deutschland',
1442
  'Get shoporders'              => 'Shopbestellungen holen und bearbeiten',
1440 1443
  'Git revision: #1, #2 #3'     => 'Git-Revision: #1, #2 #3',
1441 1444
  'Given Name'                  => 'Vorname',
1442 1445
  'Gldate'                      => 'Erfassungsdatum',
......
1844 1847
  'Multiple addresses can be entered separated by commas.' => 'Mehrere Adressen können durch Kommata getrennt angegeben werden.',
1845 1848
  'MwSt. inkl.'                 => 'MwSt. inkl.',
1846 1849
  'Name'                        => 'Name',
1850
  'Name 2'                      => '',
1851
  'Name 3'                      => '',
1847 1852
  'Name and Street'             => 'Name und Straße',
1848 1853
  'Name does not make sense without any bsooqr options' => 'Option "Name in gewählten Belegen" wird ignoriert.',
1849 1854
  'Name in Selected Records'    => 'Name in gewählten Belegen',
......
1989 1994
  'November'                    => 'November',
1990 1995
  'Number'                      => 'Nummer',
1991 1996
  'Number Format'               => 'Zahlenformat',
1997
  'Number data sets'            => 'Anzahl Datensätze',
1992 1998
  'Number missing in Row'       => 'Nummer fehlt in Zeile',
1999
  'Number of Data: '            => '',
1993 2000
  'Number of bins'              => 'Anzahl Lagerplätze',
1994 2001
  'Number of columns of custom variables in form details (second row)' => 'Anzahl der Spalten für benutzerdef. Variablen in den Formulardetails (zweite Positionszeile)',
1995 2002
  'Number of copies'            => 'Anzahl Kopien',
2003
  'Number of data uploaded:'    => 'Uploaded Datensätze',
1996 2004
  'Number of deliveryorders created:' => 'Anzahl erzeugter Lieferscheine:',
1997 2005
  'Number of deliveryorders printed:' => 'Anzahl gedruckter Lieferscheine:',
1998 2006
  'Number of entries changed: #1' => 'Anzahl geänderter Einträge: #1',
......
3068 3076
  'The connection to the database could not be established.' => 'Die Verbindung zur Datenbank konnte nicht hergestellt werden.',
3069 3077
  'The connection to the template database failed:' => 'Die Verbindung zur Vorlagendatenbank schlug fehl:',
3070 3078
  'The connection to the webshop is not success. Message: #1 -- URL: #2 -- Datatype: #3' => 'Die Verbindung zum Webshop ist fehlgeschlagen. Meldung: #1 -- URL: #2 -- Datentyp: #3',
3071
  'The connection to the webshop is success. Version: #1 -- Revision: #2' => 'Die Verbindung zum Webshop ist erfolgreich Version: #1 -- Revision: #2',
3079
  'The connection to the webshop was successful. Version: #1 -- Revision: #2' => 'Die Verbindung zum Webshop steht: Version #1 -- Revison: #2',
3072 3080
  'The connection was established successfully.' => 'Die Verbindung zur Datenbank wurde erfolgreich hergestellt.',
3073 3081
  'The contact person attribute "birthday" is converted from a free-form text field into a date field.' => 'Das Kontaktpersonenfeld "Geburtstag" wird von einem freien Textfeld auf ein Datumsfeld umgestellt.',
3074 3082
  'The creation of the authentication database failed:' => 'Das Anlegen der Authentifizierungsdatenbank schlug fehl:',
......
3237 3245
  'The shop has been created.'  => 'Shop hinzugefügt',
3238 3246
  'The shop has been deleted.'  => 'Shop gelöscht',
3239 3247
  'The shop has been saved.'    => 'Shop gespeichert',
3240
  'The shop has been used and cannot be deleted.' => 'Der Shop ist gebraucht und kann nicht gelöscht werden',
3248
  'The shop is in use and cannot be deleted.' => 'Der Webshop wird benutzt und kann nicht gelöscht werden',
3241 3249
  'The shop part has been created.' => 'Shopartikel angelegt',
3242 3250
  'The shop part has been saved.' => 'Shopartikel gespeichert',
3243 3251
  'The shop part wasn\'t updated.' => 'Shopartikel wurde nicht aktualisiert!',
......
3563 3571
  'Upload shopimage'            => 'Upload Shopbild',
3564 3572
  'Uploaded at'                 => 'Hochgeladen um',
3565 3573
  'Uploaded on #1, size #2 kB'  => 'Am #1 hochgeladen, Größe #2 kB',
3574
  'Uploading Data'              => 'Uploading',
3566 3575
  'UsageE'                      => 'Lagerentnahme',
3567 3576
  'UsageWithout'                => 'Entnommen (ohne Korr.)',
3568 3577
  'Use As New'                  => 'Als neu verwenden',
locale/en/all
13 13
  ' Date missing!'              => '',
14 14
  ' bytes, max='                => '',
15 15
  ' missing!'                   => '',
16
  ' not found'                  => '',
17 16
  '#1 (custom variable)'        => '',
18 17
  '#1 CB transactions and #1 OB transactions generated.' => '',
19 18
  '#1 MD'                       => '',
......
25 24
  '#1 proposal(s) saved.'       => '',
26 25
  '#1 proposal(s) with #2 invoice(s) saved.' => '',
27 26
  '#1 section(s)'               => '',
28
  '#1 shoporders has been fetched' => '',
29 27
  '#1 text block(s) back'       => '',
30 28
  '#1 text block(s) front'      => '',
31 29
  '%'                           => '',
......
648 646
  'Contrary to Reduced Master Data this will be shown as discount in records.' => '',
649 647
  'Conversion of "birthday" contact person attribute' => '',
650 648
  'Conversion to PDF failed: #1' => '',
649
  'Conversion:'                 => '',
651 650
  'Converting to deliveryorder' => '',
652 651
  'Copies'                      => '',
653 652
  'Copy'                        => '',
......
734 733
  'Created on'                  => '',
735 734
  'Creating Documents'          => '',
736 735
  'Creating invoices'           => '',
737
  'Creating orders'             => '',
738 736
  'Creating the PDF failed:'    => '',
739 737
  'Creation Date'               => '',
740 738
  'Credit'                      => '',
......
773 771
  'Current version'             => '',
774 772
  'Current year'                => '',
775 773
  'Currently #1 delivery orders can be converted into invoices and printed.' => '',
774
  'Custom CSV format'           => '',
776 775
  'Custom Variables'            => '',
777 776
  'Custom shipto'               => '',
778 777
  'Custom variables for module' => '',
......
805 804
  'Customer/Vendor (database ID)' => '',
806 805
  'Customer/Vendor Name'        => '',
807 806
  'Customer/Vendor Number'      => '',
808
  'Customer/Vendor name'        => '',
809
  'Customer/Vendor number'      => '',
810 807
  'Customer/Vendor/Remote name' => '',
811 808
  'Customername'                => '',
812 809
  'Customernumber'              => '',
......
1405 1402
  'From'                        => '',
1406 1403
  'From Date'                   => '',
1407 1404
  'From bin'                    => '',
1405
  'From shop #1 :  #2 shoporders has been fetched' => '',
1408 1406
  'From this version on a new feature is available.' => '',
1409 1407
  'From this version on it is necessary to name a default value.' => '',
1410 1408
  'From this version on the partnumber of services, articles and assemblies have to be unique.' => '',
......
1907 1905
  'No changes since previous version.' => '',
1908 1906
  'No clients have been created yet.' => '',
1909 1907
  'No contact selected to delete' => '',
1908
  'No contra account selected!' => '',
1910 1909
  'No customer has been selected yet.' => '',
1911 1910
  'No data was found.'          => '',
1912 1911
  'No default currency'         => '',
......
1998 1997
  'Number of bins'              => '',
1999 1998
  'Number of columns of custom variables in form details (second row)' => '',
2000 1999
  'Number of copies'            => '',
2000
  'Number of data uploaded:'    => '',
2001 2001
  'Number of deliveryorders created:' => '',
2002 2002
  'Number of deliveryorders printed:' => '',
2003 2003
  'Number of entries changed: #1' => '',
......
2123 2123
  'Part Unit'                   => '',
2124 2124
  'Part classifications'        => '',
2125 2125
  'Part picker'                 => '',
2126
  'Part with Partnumber: '      => '',
2126
  'Part with partnumber: #1 not found' => '',
2127 2127
  'PartClassAbbreviation'       => '',
2128 2128
  'Part_br_Description'         => 'Description',
2129 2129
  'Partdescriptipion'           => '',
......
2551 2551
  'SEPA message ID'             => '',
2552 2552
  'SEPA message IDs'            => '',
2553 2553
  'SEPA strings'                => '',
2554
  'SWIFT MT940 format'          => '',
2554 2555
  'Saldo'                       => '',
2555 2556
  'Saldo Credit'                => '',
2556 2557
  'Saldo Debit'                 => '',
......
2747 2748
  'Shoporder deleted -- '       => '',
2748 2749
  'Shoporder not found'         => '',
2749 2750
  'Shoporderlock'               => '',
2751
  'Shoporders'                  => '',
2750 2752
  'Shops'                       => '',
2751 2753
  'Short'                       => '',
2752 2754
  'Should ap transactions be and when should they be changeable or deleteable after posting?' => '',
......
2794 2796
  'Show items from invoices individually' => '',
2795 2797
  'Show mappings (csv_import)'  => '',
2796 2798
  'Show old dunnings'           => '',
2799
  'Show only marked as paid invoices' => '',
2797 2800
  'Show order'                  => '',
2798 2801
  'Show overdue sales quotations and requests for quotations...' => '',
2799 2802
  'Show parts'                  => '',
......
3069 3072
  'The connection to the database could not be established.' => '',
3070 3073
  'The connection to the template database failed:' => '',
3071 3074
  'The connection to the webshop is not success. Message: #1 -- URL: #2 -- Datatype: #3' => '',
3072
  'The connection to the webshop is success. Version: #1 -- Revision: #2' => '',
3075
  'The connection to the webshop was successful. Version: #1 -- Revision: #2' => '',
3073 3076
  'The connection was established successfully.' => '',
3074 3077
  'The contact person attribute "birthday" is converted from a free-form text field into a date field.' => '',
3075 3078
  'The creation of the authentication database failed:' => '',
......
3106 3109
  'The documents have been sent to the printer \'#1\'.' => '',
3107 3110
  'The dunnings have been printed.' => '',
3108 3111
  'The email has been sent.'    => '',
3112
  'The email was not sent due to the following error: #1.' => '',
3109 3113
  'The employee is missing.'    => '',
3110 3114
  'The end date is the last day for which invoices will possibly be created.' => '',
3111 3115
  'The execution schedule is invalid.' => '',
......
3237 3241
  'The shop has been created.'  => '',
3238 3242
  'The shop has been deleted.'  => '',
3239 3243
  'The shop has been saved.'    => '',
3240
  'The shop has been used and cannot be deleted.' => '',
3244
  'The shop is in use and cannot be deleted.' => '',
3241 3245
  'The shop part has been created.' => '',
3242 3246
  'The shop part has been saved.' => '',
3243 3247
  'The shop part wasn\'t updated.' => '',
......
3563 3567
  'Upload shopimage'            => '',
3564 3568
  'Uploaded at'                 => '',
3565 3569
  'Uploaded on #1, size #2 kB'  => '',
3570
  'Uploading Data'              => '',
3566 3571
  'UsageE'                      => 'Report about stock withdrawal',
3567 3572
  'UsageWithout'                => 'Usage (without correction)',
3568 3573
  'Use As New'                  => '',
menus/user/00-erp.yaml
373 373
- parent: webshop
374 374
  id: webshop_import
375 375
  name: Webshop Import
376
  access: shop_order
376 377
  params:
377 378
    action: ShopOrder/list
378 379
    filter.transferred:eq_ignore_empty: 0
......
382 383
- parent: webshop
383 384
  id: webshop_articles
384 385
  name: Webshop articles
386
  access: shop_part_edit
385 387
  params:
386 388
    action: ShopPart/list_articles
387 389
    db: shop_parts
......
1265 1267
  id: system_shops
1266 1268
  name: Web shops
1267 1269
  order: 2350
1270
  access: edit_shop_config
1268 1271
  params:
1269 1272
    action: Shop/list
1270 1273
- parent: system
sql/Pg-upgrade2-auth/webshop_api_rights.pl
1
# @tag: webshop_api_rights
2
# @description: Setzt die Rechte Shopconfig, Shopbestellungen, Shopartikel, per Default erlaubt
3
# @depends: release_3_5_0
4
package SL::DBUpgrade2::Auth::webshop_api_rights;
5

  
6
use strict;
7
use utf8;
8

  
9
use parent qw(SL::DBUpgrade2::Base);
10

  
11
use SL::DBUtils;
12

  
13
sub run {
14
  my ($self) = @_;
15

  
16
  $self->db_query("INSERT INTO auth.master_rights (position, name, description) VALUES ( 550,  'shop_part_edit',   'Create and edit shopparts')");
17
  $self->db_query("INSERT INTO auth.master_rights (position, name, description) VALUES ( 950,  'shop_order',       'Get shoporders')");
18
  $self->db_query("INSERT INTO auth.master_rights (position, name, description) VALUES ( 4300, 'edit_shop_config', 'Create and edit webshops')");
19

  
20
  my $groups = $main::auth->read_groups();
21

  
22
  foreach my $group (values %{$groups}) {
23
    $group->{rights}->{shop_part_edit}   = 1;
24
    $group->{rights}->{shop_order}       = 1;
25
    $group->{rights}->{edit_shop_config} = 1;
26
    $main::auth->save_group($group);
27
  }
28

  
29
  return 1;
30
} # end run
31

  
32
1;
templates/webpages/part/form.html
41 41
    [%- IF CUSTOM_VARIABLES.size %]
42 42
    <li><a href="#custom_variables">[% 'Custom Variables' | $T8 %]</a></li>
43 43
    [%- END %]
44
    [% IF AUTH.assert('shop_part_edit', 1) %]
44 45
    <li><a href="#shop_variables">[% 'Shop variables' | $T8 %]</a></li>
46
    [% END %]
45 47
   </ul>
46 48

  
47 49
   <div id="basic_data">
......
68 70
   <div id="sales_price_information">
69 71
     [% PROCESS part/_sales_price_information.html id=SELF.part.id %]
70 72
   </div>
73
   [% IF AUTH.assert('shop_part_edit', 1) %]
71 74
   <div id="shop_variables">
72 75
     [% PROCESS 'part/_shop.html' %]
73 76
   </div>
74 77
   [%- END %]
78
   [%- END %]
75 79

  
76 80
   [%- IF CUSTOM_VARIABLES.size %]
77 81
   <div id="custom_variables">

Auch abrufbar als: Unified diff