lindegroup/autopkgr — pull request #99 by eahrold (2014-08-08 14:52:01+00:00)
Title: Schedule with helper tool

__Official Pull Request for master__
previous reference and discussion can be found here: #86

Needs a lot of scrutiny due to inherent security concerns.
Please pay special attention to the main.m file. Much of the logic related to running in the root context is there.

**Note:** the Keychian item in this version is stored in the system.keychain so when switching between iterations that do not employ the helper tool make sure to remove the keychain item, which could potentially cause strange behavior.

**Note:** to uninstall there is a mechanism built in to the Menu item. Press the control key when the menu is selected and "Uninstall" will appear.

**Discussion** slightly related. We should consider changing the behavior to the time interval, to run at a certain time each day, using a popup button from 00:00 - 23:00.

**Discussion** There's a few places we can deal with authorizing and securing the helper tool.
I'll put up branches with examples of each. __This branch is style 2__

##### 1) We could Install / Remove the helper tool between launches.

pros:
the helper is in no way available for exploit when AutoPkgr is not running
the Authorization can happen at launch, and exit on auth failure, to somewhat secure the entire AutoPkgr run cycle, a once the car is started approach.

cons:
crashes could leave things vulnerable with the helper tool exposed

##### 2) Authorize certain methods in the helper

pros:
you can choose what to lock down you can be sure at any time that a user is authorized to perform the action.

cons:
requires much more user interaction, entering passwords.

##### 3) A combination of 1 and 2.
.

if 2 or 3 the question is,
what methods should require authorization for each time they're called.
right now the helper-tool has these methods

installSchedule
unInstallSchedule
installPackageFromPath
addPasswordForUser
uninstallHelper

Any and All suggestions and criticisms are welcome.