summaryrefslogtreecommitdiff
path: root/scripts/admin.pl
blob: 64fefcb90e2d25a00257682e49e61d4d848e0dc9 (plain)
  1. package LedgerSMB::Scripts::Admin;
  2. use LedgerSMB::Template;
  3. use LedgerSMB::DBObject::Admin;
  4. sub new_user {
  5. # uses the same page as create_user, only pre-populated.
  6. my ($class, $request) = @_;
  7. my $admin = LedgerSMB::DBObject::Admin->new(base=>$request, copy=>'all');
  8. if ($request->type() == 'POST') {
  9. # do the save stuff
  10. my $entity = $admin->save_user();
  11. my $template = LedgerSMB::Template->new( user => $user,
  12. template => 'admin/edit_user.html', language => $user->{language},
  13. format => 'html');
  14. $template->render($entity);
  15. } else {
  16. my $template = LedgerSMB::Template->new( user => $user,
  17. template => 'admin/edit_user.html', language => $user->{language},
  18. format => 'html');
  19. $template->render();
  20. }
  21. }
  22. sub edit_user {
  23. # uses the same page as create_user, only pre-populated.
  24. my ($class, $request) = @_;
  25. my $admin = LedgerSMB::DBObject::Admin->new(base=>$request, copy=>'user_id');
  26. my $edited_user = $admin->get_entire_user();
  27. my $all_roles = $admin->role_list();
  28. my $template = LedgerSMB::Template->new( user => $user,
  29. template => 'admin/edit_user.html', language => $user->{language},
  30. format => 'html');
  31. $template->render($edited_user, $all_roles);
  32. }
  33. sub edit_group {
  34. my ($class, $request) = @_;
  35. my $admin = LedgerSMB::DBObject::Admin->new(base=>$request, copy=>'all');
  36. my $all_roles = $admin->role_list();
  37. my $group = $admin->get_group();
  38. my $template = LedgerSMB::Template->new( user => $user,
  39. template => 'admin/edit_group.html', language => $user->{language},
  40. format => 'html');
  41. $template->render($all_roles);
  42. }
  43. sub create_group {
  44. my ($class, $request) = @_;
  45. my $admin = LedgerSMB::DBObject::Admin->new(base=>$request, copy=>'all');
  46. my $all_roles = $admin->role_list();
  47. my $template = LedgerSMB::Template->new( user => $user,
  48. template => 'admin/edit_group.html', language => $user->{language},
  49. format => 'html');
  50. $template->render($all_roles);
  51. }
  52. sub delete_group {
  53. my ($class, $request) = @_;
  54. my $admin = LedgerSMB::DBObject::Admin->new(base=>$request, copy=>'all');
  55. # requires the field modifying_user to be set.
  56. my $status = $admin->delete_group($request->{modifying_user});
  57. # status can either be 1, or an error.
  58. # if there's an error, $status->throw() is called by admin.pm. Or possibly
  59. # in the template itself.
  60. my $template = LedgerSMB::Template->new ( user=>$user,
  61. template=>'admin/delete_group.html', language=>$user->{language},
  62. format=>'html');
  63. $template->render($status);
  64. }
  65. sub delete_user {
  66. my ($class, $request) = @_;
  67. my $admin = LedgerSMB::DBObject::Admin->new(base=>$request, copy=>'all');
  68. # requires the field modifying_user to be set.
  69. my $status = $admin->delete_user($request->{modifying_user});
  70. # status can either be 1, or an error.
  71. # if there's an error, $status->throw() is called by admin.pm. Or possibly
  72. # in the template itself.
  73. my $template = LedgerSMB::Template->new ( user=>$user,
  74. template=>'admin/delete_user.html', language=>$user->{language},
  75. format=>'html');
  76. $template->render($status);
  77. }
  78. sub new_user {
  79. my ($class, $request) = @_;
  80. my $template = LedgerSMB::Template->new( user=>$user,
  81. template=>'admin/new_user.html', language=>$user->{language},
  82. format=>'html');
  83. $template->render();
  84. }
  85. sub new_group {
  86. my ($class, $request) = @_;
  87. my $template = LedgerSMB::Template->new( user=>$user,
  88. template=>'admin/new_group.html', language=>$user->{language},
  89. format=>'html');
  90. $template->render();
  91. }
  92. sub __default {
  93. my ($class, $request) = @_;
  94. # check for login
  95. my $template;
  96. $template = LedgerSMB::Template->new( user=>$user,
  97. template=>'admin/main.html', language=>$user->{language},
  98. format=>'html');
  99. $template->render();
  100. }
  101. 1;