How can I authenticate when using the Bugzilla Perl API in a script?

后端 未结 3 836
闹比i
闹比i 2021-01-13 16:39

Working from the Bugzilla API, I\'ve written a quick Perl script to clone a Bugzilla Product (recreating all the Components under their new Product). The Bugzilla Perl API i

相关标签:
3条回答
  • 2021-01-13 17:21

    The following code snippet might enter the question. Here we check also that the user has the correct "editcomponents" credential.

    my $user = new Bugzilla::User({ name => $login })
      || ThrowUserError('invalid_username', { name => $login });
    
    
    # Authenticate using this user account.
    Bugzilla->set_user($user);
    $user->in_group('editcomponents')
          || ThrowUserError("auth_failure", {group  => "editcomponents",
                                             action => "add",
                                             object => "products"});
    
    0 讨论(0)
  • 2021-01-13 17:34

    Oh, I'm being rather ignorant today, I focused on "web services" and didn't understand what you really wanted.

    If you're just using the API to communicate with the database (as opposed to manipulating the database directly), do you really need to authenticate as any user at all?

    In the 3.2 source tree, look at merge-users.pl for instance, which uses Bugzilla::User objects. Couldn't you do the same with Bugzilla::Component?

    You should also look at sanitycheck.pl, which uses Bugzilla->set_user.

    0 讨论(0)
  • 2021-01-13 17:36

    There's been some significant upgrades in the web services capabilities since 3.2, can you upgrade?

    In 3.6 at least, check out contrib/bz_webservice_demo.pl for how to use the User.login method.

    http://www.bugzilla.org/docs/tip/en/html/api/Bugzilla/WebService/User.html

    0 讨论(0)
提交回复
热议问题