/**
 * Render select user permissions widget
 * 
 * Params:
 * 
 * - name
 * - id
 * - permissions
 * - role_id
 *
 * @param array $params
 * @param Smarty $smarty
 * @return string
 */
function smarty_function_select_user_project_permissions($params, &$smarty)
{
    static $counter = 1;
    $id = array_var($params, 'id');
    if (empty($id)) {
        $id = 'select_user_project_permissions_' . $counter;
        $counter++;
    }
    // if
    $role_id = array_var($params, 'role_id', 0);
    $permissions = array_var($params, 'permissions', array());
    $smarty->assign(array('_select_user_project_permissions_name' => array_var($params, 'name'), '_select_user_project_permissions_role_id_field' => array_var($params, 'role_id_field', 'role_id'), '_select_user_project_permissions_permissions_field' => array_var($params, 'permissions_field', 'permissions'), '_select_user_project_permissions_name' => array_var($params, 'name'), '_select_user_project_permissions_id' => $id, '_select_user_project_permissions_role_id' => $role_id, '_select_user_project_permissions_permissions' => $permissions, '_select_user_project_permissions_roles' => Roles::findProjectRoles()));
    return $smarty->fetch(get_template_path('_user_project_permissions', null, SYSTEM_MODULE));
}
 /**
  * Show all available project roles
  *
  * @param void
  * @return null
  */
 function project_roles()
 {
     $roles_data = array();
     $project_permissions = array_keys(Permissions::findProject());
     $roles = Roles::findProjectRoles();
     if (is_foreachable($roles)) {
         foreach ($roles as $role) {
             $role_details = array('id' => $role->getId(), 'name' => $role->getName(), 'permissions' => array());
             foreach ($project_permissions as $permission) {
                 $role_details['permissions'][$permission] = (int) $role->getPermissionValue($permission, 0);
             }
             // foreach
             $roles_data[] = $role_details;
         }
         // foreach
     }
     // if
     $this->serveData($roles_data, 'project_roles');
 }