Work in progress on roles.
authorNik Okuntseff <support@anuko.com>
Thu, 22 Feb 2018 16:24:24 +0000 (16:24 +0000)
committerNik Okuntseff <support@anuko.com>
Thu, 22 Feb 2018 16:24:24 +0000 (16:24 +0000)
WEB-INF/lib/ttUser.class.php
WEB-INF/templates/footer.tpl
WEB-INF/templates/profile_edit.tpl
profile_edit.php

index 815eff7..37907c4 100644 (file)
@@ -52,6 +52,7 @@ class ttUser {
   var $uncompleted_indicators = 0; // Uncompleted time entry indicators (show nowhere or on users page).
   var $bcc_email = null;        // Bcc email.
   var $currency = null;         // Currency.
+  var $roles = 1;               // Whether we use configurable roles.
   var $plugins = null;          // Comma-separated list of enabled plugins.
   var $config = null;           // Comma-separated list of miscellaneous config options.
   var $team = null;             // Team name.
@@ -116,6 +117,7 @@ class ttUser {
       $config_array = explode(',', $this->config);
 
       // Set user config options.
+      $this->roles = in_array('roles', $config_array);
       $this->show_holidays = in_array('show_holidays', $config_array);
       $this->punch_mode = in_array('punch_mode', $config_array);
       $this->allow_overlap = in_array('allow_overlap', $config_array);
index 865790b..c60a07a 100644 (file)
@@ -12,7 +12,7 @@
       <br>
       <table cellspacing="0" cellpadding="4" width="100%" border="0">
         <tr>
-          <td align="center">&nbsp;Anuko Time Tracker 1.17.29.4011 | Copyright &copy; <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
+          <td align="center">&nbsp;Anuko Time Tracker 1.17.29.4012 | Copyright &copy; <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
             <a href="https://www.anuko.com/lp/tt_4.htm" target="_blank">{$i18n.footer.credits}</a> |
             <a href="https://www.anuko.com/lp/tt_5.htm" target="_blank">{$i18n.footer.license}</a> |
             <a href="https://www.anuko.com/lp/tt_7.htm" target="_blank">{$i18n.footer.improve}</a>
index 4851118..3dc8bc9 100644 (file)
@@ -141,6 +141,12 @@ function handlePluginCheckboxes() {
             <td align="right">{$i18n.label.currency}:</td>
             <td>{$forms.profileForm.currency.control}</td>
           </tr>
+  {if defined(DEBUG_ROLES)}
+          <tr>
+            <td align="right" nowrap>{$i18n.label.roles}:</td>
+            <td>{$forms.profileForm.roles.control} <a href="https://www.anuko.com/lp/tt_19.htm" target="_blank">{$i18n.label.what_is_it}</a></td>
+          </tr>
+  {/if}
           <tr>
            <td align="right" nowrap>{$i18n.label.language}:</td>
            <td>{$forms.profileForm.lang.control}</td>
index c4e325d..ec8e1d8 100644 (file)
@@ -52,6 +52,7 @@ if ($request->isPost()) {
     $cl_team = trim($request->getParameter('team_name'));
     $cl_currency = trim($request->getParameter('currency'));
     if (!$cl_currency) $cl_currency = CURRENCY_DEFAULT;
+    $cl_roles = $request->getParameter('roles');
     $cl_lang = $request->getParameter('lang');
     $cl_decimal_mark = $request->getParameter('decimal_mark');
     $cl_date_format = $request->getParameter('date_format');
@@ -89,6 +90,7 @@ if ($request->isPost()) {
   if ($user->canManageTeam()) {
     $cl_team = $user->team;
     $cl_currency = ($user->currency == ''? CURRENCY_DEFAULT : $user->currency);
+    $cl_roles = $user->roles;
     $cl_lang = $user->lang;
     $cl_decimal_mark = $user->decimal_mark;
     $cl_date_format = $user->date_format;
@@ -133,6 +135,8 @@ $form->addInput(array('type'=>'text','maxlength'=>'100','name'=>'email','value'=
 if ($user->canManageTeam()) {
   $form->addInput(array('type'=>'text','maxlength'=>'200','name'=>'team_name','value'=>$cl_team));
   $form->addInput(array('type'=>'text','maxlength'=>'7','name'=>'currency','value'=>$cl_currency));
+  // Roles checkbox.
+  $form->addInput(array('type'=>'checkbox','name'=>'roles','value'=>$cl_roles));
 
   // Prepare an array of available languages.
   $lang_files = I18n::getLangFileList();
@@ -296,6 +300,8 @@ if ($request->isPost()) {
       $plugins = trim($plugins, ',');
 
       // Prepare config string.
+      if ($cl_roles)
+        $config .= ',roles';
       if ($cl_show_holidays)
         $config .= ',show_holidays';
       if ($cl_punch_mode)