Plugin Directory

Changeset 505547


Ignore:
Timestamp:
02/15/2012 06:44:38 PM (14 years ago)
Author:
down_under
Message:

New feature : "token based integration"

Location:
surveypress
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • surveypress/tags/1.0.9/survey-press.php

    r504350 r505547  
    6868$same_option_password             = 'same_password';
    6969$list_option_public_surveys       = 'list_public_survey_only';
     70$token_option_sid_list            = 'token_sid_list';
    7071// respective values from database.
    7172// Read in existing option value from database
     73$token_value_sid_list = get_option( $token_option_sid_list );
     74
    7275if ( get_option( $apply_option_default_permissions ) == '' )
    7376{
     
    114117    $list_value_public_surveys = (int) get_option( $list_option_public_surveys );
    115118}
     119
     120$map_role_subscriber_token    = (int) get_option( 'map_role_subscriber_token' );
     121$map_role_administrator_token = (int) get_option( 'map_role_administrator_token' );
     122$map_role_editor_token        = (int) get_option( 'map_role_editor_token' );
     123$map_role_author_token        = (int) get_option( 'map_role_author_token' );
     124$map_role_contributor_token   = (int) get_option( 'map_role_contributor_token' );
    116125
    117126/**
     
    358367                   
    359368                   
    360                     $puid = $lsdb->get_var( "SELECT uid FROM ".$db_value_prefix."users WHERE users_name = '".$adminusername."'" );
     369                    $puid = $lsdb->get_var( $lsdb->prepare( "SELECT uid FROM ".$db_value_prefix."users WHERE users_name = '".$adminusername."'" ) );
    361370                    //echo $userinfo->user_login."--".$userinfo->user_firstname." ".$userinfo->user_lastname."--".$userinfo->user_email."--".$puid;
    362371                    //exit();
  • surveypress/tags/1.0.9/view/config-menu.php

    r504350 r505547  
    178178{
    179179    global $lsdb;
     180    //fetch currently logged in user info
     181    global $current_user;
     182    get_currentuserinfo();
    180183    //$lsdb = new wpdb( $db_value_user, $db_value_pwd, $db_value_name, $db_value_host );
    181184    $query = "SELECT a.sid, b.surveyls_title, a.listpublic
     
    254257                    echo "<ul type='disc'>";
    255258                }
    256                 printf(__("<li> <a href='".$db_value_url."/index.php?sid=".$publicsurvey[$temp]['sid']."' target='_blank'><strong> %s </strong></a> </li>"), $publicsurvey[$temp]['title']);
     259               
     260                //see if there is a token for the current user
     261                $query = "SELECT token
     262                          FROM ".$db_value_prefix."tokens_".$publicsurvey[$temp]['sid']."
     263                          WHERE firstname='".$current_user->user_login."'
     264                          AND lastname='".$current_user->display_name."'
     265                          AND email='".$current_user->user_email."'";
     266                           
     267                $token = $lsdb->get_var( $lsdb->prepare( $query ) );
     268               
     269                //build appropriate token string
     270                if ( is_null( $token ) )
     271                {
     272                    $token = "";
     273                }
     274                else
     275                {
     276                    $token = "&token=".$token;
     277                }
     278               
     279                printf(__("<li> <a href='".$db_value_url."/index.php?sid=".$publicsurvey[$temp]['sid'].$token."' target='_blank'><strong> %s </strong></a> </li>"), $publicsurvey[$temp]['title']);
    257280               
    258281                if ( $temp == ( $publiccount - 1 ) )
     
    276299                    echo "<ul type='disc'>";
    277300                }
    278                 printf(__("<li> <a href='".$db_value_url."/index.php?sid=".$privatesurvey[$temp]['sid']."' target='_blank'><strong> %s </strong></a> </li>"), $privatesurvey[$temp]['title']);
     301               
     302                //see if there is a token for the current user
     303                $query = "SELECT token
     304                          FROM ".$db_value_prefix."tokens_".$privatesurvey[$temp]['sid']."
     305                          WHERE firstname='".$current_user->user_login."'
     306                          AND lastname='".$current_user->display_name."'
     307                          AND email='".$current_user->user_email."'";
     308                           
     309                $token = $lsdb->get_var( $lsdb->prepare( $query ) );
     310               
     311                //build appropriate token string
     312                if ( is_null( $token ) )
     313                {
     314                    $token = "";
     315                }
     316                else
     317                {
     318                    $token = "&token=".$token;
     319                }
     320               
     321                printf(__("<li> <a href='".$db_value_url."/index.php?sid=".$privatesurvey[$temp]['sid'].$token."' target='_blank'><strong> %s </strong></a> </li>"), $privatesurvey[$temp]['title']);
    279322               
    280323                if ( $temp == ( $privatecount - 1 ) )
  • surveypress/tags/1.0.9/view/option-menu.php

    r504350 r505547  
    99global $apply_option_default_permissions,$show_option_survey_notification,$show_option_import_users,$same_option_password,$list_option_public_surveys;
    1010global $apply_value_default_permissions,$show_value_survey_notification,$show_value_import_users,$same_value_password,$list_value_public_surveys;
     11global $token_option_sid_list,$token_value_sid_list,$db_value_prefix;
     12global $map_role_subscriber_token,$map_role_administrator_token,$map_role_editor_token,$map_role_author_token,$map_role_contributor_token;
     13global $lsdb;
     14
     15
     16function randomChars($length,$pattern="23456789abcdefghijkmnpqrstuvwxyz")
     17{
     18    $patternlength = strlen($pattern)-1;
     19    for($i=0;$i<$length;$i++)
     20    {
     21        if(isset($key))
     22            $key .= $pattern{rand(0,$patternlength)};
     23        else
     24            $key = $pattern{rand(0,$patternlength)};
     25    }
     26    return $key;
     27}
    1128
    1229//output the heading.
     
    3754            $same_value_password             = (int) $_POST[ $same_option_password ];
    3855            $list_value_public_surveys       = (int) $_POST[ $list_option_public_surveys ];
     56            $token_value_sid_list            = $_POST[ $token_option_sid_list ];
     57           
     58            $map_role_subscriber_token       = (int) ( isset($_POST['map_role_subscriber_token']) )    ? ( $_POST['map_role_subscriber_token'] )    : ( 0 );
     59            $map_role_administrator_token    = (int) ( isset($_POST['map_role_administrator_token']) ) ? ( $_POST['map_role_administrator_token'] ) : ( 0 );
     60            $map_role_editor_token           = (int) ( isset($_POST['map_role_editor_token']) )        ? ( $_POST['map_role_editor_token'] )        : ( 0 );
     61            $map_role_author_token           = (int) ( isset($_POST['map_role_author_token']) )        ? ( $_POST['map_role_author_token'] )        : ( 0 );
     62            $map_role_contributor_token      = (int) ( isset($_POST['map_role_contributor_token']) )   ? ( $_POST['map_role_contributor_token'] )   : ( 0 );
    3963       
    4064            // Save the posted values in the database
     
    4468            update_option( $same_option_password, $same_value_password );
    4569            update_option( $list_option_public_surveys, $list_value_public_surveys );
    46        
     70            update_option( $token_option_sid_list, $token_value_sid_list );
     71           
     72            update_option( 'map_role_subscriber_token', $map_role_subscriber_token );
     73            update_option( 'map_role_administrator_token', $map_role_administrator_token );
     74            update_option( 'map_role_editor_token', $map_role_editor_token );
     75            update_option( 'map_role_author_token', $map_role_author_token );
     76            update_option( 'map_role_contributor_token', $map_role_contributor_token );
     77       
     78           
     79            //check if $token_option_sid_list is not empty
     80            if ( $token_value_sid_list != '' ||  $token_value_sid_list != null )
     81            {
     82                $sid_token = explode( ',', $token_value_sid_list );
     83               
     84                foreach ($sid_token as $sid)
     85                {
     86                    $sid = (int) $sid;
     87                    $lang = $lsdb->get_var( $lsdb->prepare( "SELECT language FROM ".$db_value_prefix."surveys WHERE sid=".$sid.";" ) );
     88                    //add tokens for users with specified roles.
     89                    //subscriber
     90                    if((int)$map_role_subscriber_token)
     91                    {
     92                        $users = get_users('role=subscriber');
     93                        foreach ($users as $user) {
     94                           
     95                            $isvalidtoken = false;
     96                            while ($isvalidtoken == false)
     97                            {
     98                                $newtoken = randomChars(15);
     99                                if (!isset($existingtokens[$newtoken]))
     100                                {
     101                                    $isvalidtoken = true;
     102                                    $existingtokens[$newtoken] = null;
     103                                }
     104                            }
     105                            $sanitizedtoken = $newtoken;
     106                           
     107                            $subscriber = $lsdb->insert(
     108                                $db_value_prefix.'tokens_'.$sid,
     109                                array(
     110                                    'firstname' => $user->user_login,
     111                                    'lastname' => $user->display_name,
     112                                    'email' => $user->user_email,
     113                                    'emailstatus' => "OK",
     114                                    'token' => $sanitizedtoken,
     115                                    'language' => $lang,
     116                                    'sent' => 'N',
     117                                    'remindersent' => 'N',
     118                                    'completed' => 'N',
     119                                    'usesleft' => 1
     120                                ),
     121                                array(
     122                                    '%s',
     123                                    '%s',
     124                                    '%s',
     125                                    '%s',
     126                                    '%s',
     127                                    '%s',
     128                                    '%s',
     129                                    '%s',
     130                                    '%s',
     131                                    '%d'
     132                                )
     133                            );
     134                        }
     135                    }
     136                   
     137                    //administrator role
     138                    if((int)$map_role_administrator_token)
     139                    {
     140                        $users = get_users('role=administrator');
     141                        foreach ($users as $user) {
     142                           
     143                            $isvalidtoken = false;
     144                            while ($isvalidtoken == false)
     145                            {
     146                                $newtoken = randomChars(15);
     147                                if (!isset($existingtokens[$newtoken]))
     148                                {
     149                                    $isvalidtoken = true;
     150                                    $existingtokens[$newtoken] = null;
     151                                }
     152                            }
     153                            $sanitizedtoken = $newtoken;
     154                           
     155                            $administrator = $lsdb->insert(
     156                                $db_value_prefix.'tokens_'.$sid,
     157                                array(
     158                                    'firstname' => $user->user_login,
     159                                    'lastname' => $user->display_name,
     160                                    'email' => $user->user_email,
     161                                    'emailstatus' => "OK",
     162                                    'token' => $sanitizedtoken,
     163                                    'language' => $lang,
     164                                    'sent' => 'N',
     165                                    'remindersent' => 'N',
     166                                    'completed' => 'N',
     167                                    'usesleft' => 1
     168                                ),
     169                                array(
     170                                    '%s',
     171                                    '%s',
     172                                    '%s',
     173                                    '%s',
     174                                    '%s',
     175                                    '%s',
     176                                    '%s',
     177                                    '%s',
     178                                    '%s',
     179                                    '%d'
     180                                )
     181                            );
     182                        }
     183                    }
     184                   
     185                    //editor role
     186                    if((int)$map_role_editor_token)
     187                    {
     188                        $users = get_users('role=editor');
     189                        foreach ($users as $user) {
     190                           
     191                            $isvalidtoken = false;
     192                            while ($isvalidtoken == false)
     193                            {
     194                                $newtoken = randomChars(15);
     195                                if (!isset($existingtokens[$newtoken]))
     196                                {
     197                                    $isvalidtoken = true;
     198                                    $existingtokens[$newtoken] = null;
     199                                }
     200                            }
     201                            $sanitizedtoken = $newtoken;
     202                           
     203                            $editor = $lsdb->insert(
     204                                $db_value_prefix.'tokens_'.$sid,
     205                                array(
     206                                    'firstname' => $user->user_login,
     207                                    'lastname' => $user->display_name,
     208                                    'email' => $user->user_email,
     209                                    'emailstatus' => "OK",
     210                                    'token' => $sanitizedtoken,
     211                                    'language' => $lang,
     212                                    'sent' => 'N',
     213                                    'remindersent' => 'N',
     214                                    'completed' => 'N',
     215                                    'usesleft' => 1
     216                                ),
     217                                array(
     218                                    '%s',
     219                                    '%s',
     220                                    '%s',
     221                                    '%s',
     222                                    '%s',
     223                                    '%s',
     224                                    '%s',
     225                                    '%s',
     226                                    '%s',
     227                                    '%d'
     228                                )
     229                            );
     230                        }
     231                    }
     232                   
     233                    //author role
     234                    if((int)$map_role_author_token)
     235                    {
     236                        $users = get_users('role=author');
     237                        foreach ($users as $user) {
     238                           
     239                            $isvalidtoken = false;
     240                            while ($isvalidtoken == false)
     241                            {
     242                                $newtoken = randomChars(15);
     243                                if (!isset($existingtokens[$newtoken]))
     244                                {
     245                                    $isvalidtoken = true;
     246                                    $existingtokens[$newtoken] = null;
     247                                }
     248                            }
     249                            $sanitizedtoken = $newtoken;
     250                           
     251                            $author = $lsdb->insert(
     252                                $db_value_prefix.'tokens_'.$sid,
     253                                array(
     254                                    'firstname' => $user->user_login,
     255                                    'lastname' => $user->display_name,
     256                                    'email' => $user->user_email,
     257                                    'emailstatus' => "OK",
     258                                    'token' => $sanitizedtoken,
     259                                    'language' => $lang,
     260                                    'sent' => 'N',
     261                                    'remindersent' => 'N',
     262                                    'completed' => 'N',
     263                                    'usesleft' => 1
     264                                ),
     265                                array(
     266                                    '%s',
     267                                    '%s',
     268                                    '%s',
     269                                    '%s',
     270                                    '%s',
     271                                    '%s',
     272                                    '%s',
     273                                    '%s',
     274                                    '%s',
     275                                    '%d'
     276                                )
     277                            );
     278                        }
     279                    }
     280                   
     281                    //contributor role
     282                    if((int)$map_role_contributor_token)
     283                    {
     284                        $users = get_users('role=contributor');
     285                        foreach ($users as $user) {
     286                           
     287                            $isvalidtoken = false;
     288                            while ($isvalidtoken == false)
     289                            {
     290                                $newtoken = randomChars(15);
     291                                if (!isset($existingtokens[$newtoken]))
     292                                {
     293                                    $isvalidtoken = true;
     294                                    $existingtokens[$newtoken] = null;
     295                                }
     296                            }
     297                            $sanitizedtoken = $newtoken;
     298                           
     299                            $contributor = $lsdb->insert(
     300                                $db_value_prefix.'tokens_'.$sid,
     301                                array(
     302                                    'firstname' => $user->user_login,
     303                                    'lastname' => $user->display_name,
     304                                    'email' => $user->user_email,
     305                                    'emailstatus' => "OK",
     306                                    'token' => $sanitizedtoken,
     307                                    'language' => $lang,
     308                                    'sent' => 'N',
     309                                    'remindersent' => 'N',
     310                                    'completed' => 'N',
     311                                    'usesleft' => 1
     312                                ),
     313                                array(
     314                                    '%s',
     315                                    '%s',
     316                                    '%s',
     317                                    '%s',
     318                                    '%s',
     319                                    '%s',
     320                                    '%s',
     321                                    '%s',
     322                                    '%s',
     323                                    '%d'
     324                                )
     325                            );
     326                        }
     327                    }
     328                }
     329               
     330               
     331            }
     332           
     333            $token_msg = '';
     334            if ( $token_value_sid_list != '' || $token_value_sid_list != null )
     335            {
     336                //construct new message!
     337                $token_msg = " Tokens added for users with roles :";
     338                if( (int)$map_role_subscriber_token )
     339                {
     340                    $token_msg .= " Subscriber";
     341                }
     342                if( (int)$map_role_administrator_token )
     343                {
     344                    $token_msg .= " Administrator";
     345                }
     346                if( (int)$map_role_editor_token )
     347                {
     348                    $token_msg .= " Editor";
     349                }
     350                if( (int)$map_role_author_token )
     351                {
     352                    $token_msg .= " Author";
     353                }
     354                if( (int)$map_role_contributor_token )
     355                {
     356                    $token_msg .= " Contributor";
     357                }
     358                $token_msg .=" in survey(s) with surveyid(s) :";
     359               
     360                $sid_token = explode( ',', $token_value_sid_list );
     361                foreach ( $sid_token as $sid )
     362                {
     363                   $token_msg .= " ".$sid;
     364                }
     365               
     366                $token_msg .=".";
     367            }
     368           
     369            //unset values;
     370            $token_value_sid_list         = '';
     371            $map_role_subscriber_token    = 0;
     372            $map_role_administrator_token = 0;
     373            $map_role_editor_token        = 0;
     374            $map_role_author_token        = 0;
     375            $map_role_contributor_token   = 0;
     376           
     377            update_option( $token_option_sid_list, $token_value_sid_list );
     378           
     379            update_option( 'map_role_subscriber_token', $map_role_subscriber_token );
     380            update_option( 'map_role_administrator_token', $map_role_administrator_token );
     381            update_option( 'map_role_editor_token', $map_role_editor_token );
     382            update_option( 'map_role_author_token', $map_role_author_token );
     383            update_option( 'map_role_contributor_token', $map_role_contributor_token );
    47384            // Put an settings updated message on the screen
    48385
     
    50387           
    51388            <div class='updated'>
    52                 <p><strong><?php _e('Settings saved.', 'menu-test' ); ?></strong></p>
     389                <p><strong><?php _e('Settings saved.', 'menu-test' );
     390                            if ( $token_msg != '' ) echo $token_msg; ?></strong></p>
    53391            </div>
    54392           
     
    56394
    57395        }
    58            
     396                   
    59397        //setting form here
    60398        ?>               
     
    110448        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="description">( If set to "Show", all users will see a "SurveyPress" tab in there dashboard  showing survey(s) to be taken, if they have been added to that survey. )</span>
    111449        <br />
    112         <span class="description">Useful only when you have some active surveys listed publicily in LS!</span>
     450        <span class="description">Useful only when you have some active surveys listed publicily in LimeSurvey!</span>
    113451       
    114452        </p>
     
    139477        <tr valign="top">
    140478        <th scope="row">
     479        <?php _e("Add token for users with following roles:", 'menu-test' ); ?>
     480        </th>
     481        <td>
     482        <p>
     483        <label>
     484        <input type="checkbox" name="map_role_subscriber_token" value="1" <?php if((int)$map_role_subscriber_token) { ?> checked="checked" <?php } ?> />
     485        <?php _e("Subscriber"); ?>
     486        </label>
     487        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
     488        <label>
     489        <input type="checkbox" name="map_role_administrator_token" value="1" <?php if((int)$map_role_administrator_token) { ?> checked="checked" <?php } ?> />
     490        <?php _e("Administrator"); ?>
     491        </label>
     492        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
     493        <label>
     494        <input type="checkbox" name="map_role_editor_token" value="1" <?php if((int)$map_role_editor_token) { ?> checked="checked" <?php } ?> />
     495        <?php _e("Editor"); ?>
     496        </label>
     497        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
     498        <label>
     499        <input type="checkbox" name="map_role_author_token" value="1" <?php if((int)$map_role_author_token) { ?> checked="checked" <?php } ?> />
     500        <?php _e("Author"); ?>
     501        </label>
     502        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
     503        <label>
     504        <input type="checkbox" name="map_role_contributor_token" value="1" <?php if((int)$map_role_contributor_token) { ?> checked="checked" <?php } ?> />
     505        <?php _e("Contributor"); ?>
     506        </label>
     507        <br />
     508        <b><?php _e("In surveys with surveyid:"); ?></b><br />
     509        <input type="text" name="<?php echo $token_option_sid_list; ?>" id="<?php echo $token_option_sid_list; ?>" value="<?php echo $token_value_sid_list; ?>" size="20" class="regular-text" />
     510        &nbsp;<span class="description">( Comma(,) separated list of surveyid(s) for which tokens must be added to there respective tables. )</span>
     511        <br /><span class="description">( Users with checked role(s) will have a token each in specified surveys above. Token added can be used only once! )</span>
     512       
     513        </p>
     514        </td>
     515        </tr>
     516       
     517        <tr valign="top">
     518        <th scope="row">
    141519        <?php _e("Import users from Wordpress to LimeSurvey?", 'menu-test' ); ?>
    142520        </th>
  • surveypress/trunk/survey-press.php

    r504350 r505547  
    6868$same_option_password             = 'same_password';
    6969$list_option_public_surveys       = 'list_public_survey_only';
     70$token_option_sid_list            = 'token_sid_list';
    7071// respective values from database.
    7172// Read in existing option value from database
     73$token_value_sid_list = get_option( $token_option_sid_list );
     74
    7275if ( get_option( $apply_option_default_permissions ) == '' )
    7376{
     
    114117    $list_value_public_surveys = (int) get_option( $list_option_public_surveys );
    115118}
     119
     120$map_role_subscriber_token    = (int) get_option( 'map_role_subscriber_token' );
     121$map_role_administrator_token = (int) get_option( 'map_role_administrator_token' );
     122$map_role_editor_token        = (int) get_option( 'map_role_editor_token' );
     123$map_role_author_token        = (int) get_option( 'map_role_author_token' );
     124$map_role_contributor_token   = (int) get_option( 'map_role_contributor_token' );
    116125
    117126/**
     
    358367                   
    359368                   
    360                     $puid = $lsdb->get_var( "SELECT uid FROM ".$db_value_prefix."users WHERE users_name = '".$adminusername."'" );
     369                    $puid = $lsdb->get_var( $lsdb->prepare( "SELECT uid FROM ".$db_value_prefix."users WHERE users_name = '".$adminusername."'" ) );
    361370                    //echo $userinfo->user_login."--".$userinfo->user_firstname." ".$userinfo->user_lastname."--".$userinfo->user_email."--".$puid;
    362371                    //exit();
  • surveypress/trunk/view/config-menu.php

    r504350 r505547  
    178178{
    179179    global $lsdb;
     180    //fetch currently logged in user info
     181    global $current_user;
     182    get_currentuserinfo();
    180183    //$lsdb = new wpdb( $db_value_user, $db_value_pwd, $db_value_name, $db_value_host );
    181184    $query = "SELECT a.sid, b.surveyls_title, a.listpublic
     
    254257                    echo "<ul type='disc'>";
    255258                }
    256                 printf(__("<li> <a href='".$db_value_url."/index.php?sid=".$publicsurvey[$temp]['sid']."' target='_blank'><strong> %s </strong></a> </li>"), $publicsurvey[$temp]['title']);
     259               
     260                //see if there is a token for the current user
     261                $query = "SELECT token
     262                          FROM ".$db_value_prefix."tokens_".$publicsurvey[$temp]['sid']."
     263                          WHERE firstname='".$current_user->user_login."'
     264                          AND lastname='".$current_user->display_name."'
     265                          AND email='".$current_user->user_email."'";
     266                           
     267                $token = $lsdb->get_var( $lsdb->prepare( $query ) );
     268               
     269                //build appropriate token string
     270                if ( is_null( $token ) )
     271                {
     272                    $token = "";
     273                }
     274                else
     275                {
     276                    $token = "&token=".$token;
     277                }
     278               
     279                printf(__("<li> <a href='".$db_value_url."/index.php?sid=".$publicsurvey[$temp]['sid'].$token."' target='_blank'><strong> %s </strong></a> </li>"), $publicsurvey[$temp]['title']);
    257280               
    258281                if ( $temp == ( $publiccount - 1 ) )
     
    276299                    echo "<ul type='disc'>";
    277300                }
    278                 printf(__("<li> <a href='".$db_value_url."/index.php?sid=".$privatesurvey[$temp]['sid']."' target='_blank'><strong> %s </strong></a> </li>"), $privatesurvey[$temp]['title']);
     301               
     302                //see if there is a token for the current user
     303                $query = "SELECT token
     304                          FROM ".$db_value_prefix."tokens_".$privatesurvey[$temp]['sid']."
     305                          WHERE firstname='".$current_user->user_login."'
     306                          AND lastname='".$current_user->display_name."'
     307                          AND email='".$current_user->user_email."'";
     308                           
     309                $token = $lsdb->get_var( $lsdb->prepare( $query ) );
     310               
     311                //build appropriate token string
     312                if ( is_null( $token ) )
     313                {
     314                    $token = "";
     315                }
     316                else
     317                {
     318                    $token = "&token=".$token;
     319                }
     320               
     321                printf(__("<li> <a href='".$db_value_url."/index.php?sid=".$privatesurvey[$temp]['sid'].$token."' target='_blank'><strong> %s </strong></a> </li>"), $privatesurvey[$temp]['title']);
    279322               
    280323                if ( $temp == ( $privatecount - 1 ) )
  • surveypress/trunk/view/option-menu.php

    r504350 r505547  
    99global $apply_option_default_permissions,$show_option_survey_notification,$show_option_import_users,$same_option_password,$list_option_public_surveys;
    1010global $apply_value_default_permissions,$show_value_survey_notification,$show_value_import_users,$same_value_password,$list_value_public_surveys;
     11global $token_option_sid_list,$token_value_sid_list,$db_value_prefix;
     12global $map_role_subscriber_token,$map_role_administrator_token,$map_role_editor_token,$map_role_author_token,$map_role_contributor_token;
     13global $lsdb;
     14
     15
     16function randomChars($length,$pattern="23456789abcdefghijkmnpqrstuvwxyz")
     17{
     18    $patternlength = strlen($pattern)-1;
     19    for($i=0;$i<$length;$i++)
     20    {
     21        if(isset($key))
     22            $key .= $pattern{rand(0,$patternlength)};
     23        else
     24            $key = $pattern{rand(0,$patternlength)};
     25    }
     26    return $key;
     27}
    1128
    1229//output the heading.
     
    3754            $same_value_password             = (int) $_POST[ $same_option_password ];
    3855            $list_value_public_surveys       = (int) $_POST[ $list_option_public_surveys ];
     56            $token_value_sid_list            = $_POST[ $token_option_sid_list ];
     57           
     58            $map_role_subscriber_token       = (int) ( isset($_POST['map_role_subscriber_token']) )    ? ( $_POST['map_role_subscriber_token'] )    : ( 0 );
     59            $map_role_administrator_token    = (int) ( isset($_POST['map_role_administrator_token']) ) ? ( $_POST['map_role_administrator_token'] ) : ( 0 );
     60            $map_role_editor_token           = (int) ( isset($_POST['map_role_editor_token']) )        ? ( $_POST['map_role_editor_token'] )        : ( 0 );
     61            $map_role_author_token           = (int) ( isset($_POST['map_role_author_token']) )        ? ( $_POST['map_role_author_token'] )        : ( 0 );
     62            $map_role_contributor_token      = (int) ( isset($_POST['map_role_contributor_token']) )   ? ( $_POST['map_role_contributor_token'] )   : ( 0 );
    3963       
    4064            // Save the posted values in the database
     
    4468            update_option( $same_option_password, $same_value_password );
    4569            update_option( $list_option_public_surveys, $list_value_public_surveys );
    46        
     70            update_option( $token_option_sid_list, $token_value_sid_list );
     71           
     72            update_option( 'map_role_subscriber_token', $map_role_subscriber_token );
     73            update_option( 'map_role_administrator_token', $map_role_administrator_token );
     74            update_option( 'map_role_editor_token', $map_role_editor_token );
     75            update_option( 'map_role_author_token', $map_role_author_token );
     76            update_option( 'map_role_contributor_token', $map_role_contributor_token );
     77       
     78           
     79            //check if $token_option_sid_list is not empty
     80            if ( $token_value_sid_list != '' ||  $token_value_sid_list != null )
     81            {
     82                $sid_token = explode( ',', $token_value_sid_list );
     83               
     84                foreach ($sid_token as $sid)
     85                {
     86                    $sid = (int) $sid;
     87                    $lang = $lsdb->get_var( $lsdb->prepare( "SELECT language FROM ".$db_value_prefix."surveys WHERE sid=".$sid.";" ) );
     88                    //add tokens for users with specified roles.
     89                    //subscriber
     90                    if((int)$map_role_subscriber_token)
     91                    {
     92                        $users = get_users('role=subscriber');
     93                        foreach ($users as $user) {
     94                           
     95                            $isvalidtoken = false;
     96                            while ($isvalidtoken == false)
     97                            {
     98                                $newtoken = randomChars(15);
     99                                if (!isset($existingtokens[$newtoken]))
     100                                {
     101                                    $isvalidtoken = true;
     102                                    $existingtokens[$newtoken] = null;
     103                                }
     104                            }
     105                            $sanitizedtoken = $newtoken;
     106                           
     107                            $subscriber = $lsdb->insert(
     108                                $db_value_prefix.'tokens_'.$sid,
     109                                array(
     110                                    'firstname' => $user->user_login,
     111                                    'lastname' => $user->display_name,
     112                                    'email' => $user->user_email,
     113                                    'emailstatus' => "OK",
     114                                    'token' => $sanitizedtoken,
     115                                    'language' => $lang,
     116                                    'sent' => 'N',
     117                                    'remindersent' => 'N',
     118                                    'completed' => 'N',
     119                                    'usesleft' => 1
     120                                ),
     121                                array(
     122                                    '%s',
     123                                    '%s',
     124                                    '%s',
     125                                    '%s',
     126                                    '%s',
     127                                    '%s',
     128                                    '%s',
     129                                    '%s',
     130                                    '%s',
     131                                    '%d'
     132                                )
     133                            );
     134                        }
     135                    }
     136                   
     137                    //administrator role
     138                    if((int)$map_role_administrator_token)
     139                    {
     140                        $users = get_users('role=administrator');
     141                        foreach ($users as $user) {
     142                           
     143                            $isvalidtoken = false;
     144                            while ($isvalidtoken == false)
     145                            {
     146                                $newtoken = randomChars(15);
     147                                if (!isset($existingtokens[$newtoken]))
     148                                {
     149                                    $isvalidtoken = true;
     150                                    $existingtokens[$newtoken] = null;
     151                                }
     152                            }
     153                            $sanitizedtoken = $newtoken;
     154                           
     155                            $administrator = $lsdb->insert(
     156                                $db_value_prefix.'tokens_'.$sid,
     157                                array(
     158                                    'firstname' => $user->user_login,
     159                                    'lastname' => $user->display_name,
     160                                    'email' => $user->user_email,
     161                                    'emailstatus' => "OK",
     162                                    'token' => $sanitizedtoken,
     163                                    'language' => $lang,
     164                                    'sent' => 'N',
     165                                    'remindersent' => 'N',
     166                                    'completed' => 'N',
     167                                    'usesleft' => 1
     168                                ),
     169                                array(
     170                                    '%s',
     171                                    '%s',
     172                                    '%s',
     173                                    '%s',
     174                                    '%s',
     175                                    '%s',
     176                                    '%s',
     177                                    '%s',
     178                                    '%s',
     179                                    '%d'
     180                                )
     181                            );
     182                        }
     183                    }
     184                   
     185                    //editor role
     186                    if((int)$map_role_editor_token)
     187                    {
     188                        $users = get_users('role=editor');
     189                        foreach ($users as $user) {
     190                           
     191                            $isvalidtoken = false;
     192                            while ($isvalidtoken == false)
     193                            {
     194                                $newtoken = randomChars(15);
     195                                if (!isset($existingtokens[$newtoken]))
     196                                {
     197                                    $isvalidtoken = true;
     198                                    $existingtokens[$newtoken] = null;
     199                                }
     200                            }
     201                            $sanitizedtoken = $newtoken;
     202                           
     203                            $editor = $lsdb->insert(
     204                                $db_value_prefix.'tokens_'.$sid,
     205                                array(
     206                                    'firstname' => $user->user_login,
     207                                    'lastname' => $user->display_name,
     208                                    'email' => $user->user_email,
     209                                    'emailstatus' => "OK",
     210                                    'token' => $sanitizedtoken,
     211                                    'language' => $lang,
     212                                    'sent' => 'N',
     213                                    'remindersent' => 'N',
     214                                    'completed' => 'N',
     215                                    'usesleft' => 1
     216                                ),
     217                                array(
     218                                    '%s',
     219                                    '%s',
     220                                    '%s',
     221                                    '%s',
     222                                    '%s',
     223                                    '%s',
     224                                    '%s',
     225                                    '%s',
     226                                    '%s',
     227                                    '%d'
     228                                )
     229                            );
     230                        }
     231                    }
     232                   
     233                    //author role
     234                    if((int)$map_role_author_token)
     235                    {
     236                        $users = get_users('role=author');
     237                        foreach ($users as $user) {
     238                           
     239                            $isvalidtoken = false;
     240                            while ($isvalidtoken == false)
     241                            {
     242                                $newtoken = randomChars(15);
     243                                if (!isset($existingtokens[$newtoken]))
     244                                {
     245                                    $isvalidtoken = true;
     246                                    $existingtokens[$newtoken] = null;
     247                                }
     248                            }
     249                            $sanitizedtoken = $newtoken;
     250                           
     251                            $author = $lsdb->insert(
     252                                $db_value_prefix.'tokens_'.$sid,
     253                                array(
     254                                    'firstname' => $user->user_login,
     255                                    'lastname' => $user->display_name,
     256                                    'email' => $user->user_email,
     257                                    'emailstatus' => "OK",
     258                                    'token' => $sanitizedtoken,
     259                                    'language' => $lang,
     260                                    'sent' => 'N',
     261                                    'remindersent' => 'N',
     262                                    'completed' => 'N',
     263                                    'usesleft' => 1
     264                                ),
     265                                array(
     266                                    '%s',
     267                                    '%s',
     268                                    '%s',
     269                                    '%s',
     270                                    '%s',
     271                                    '%s',
     272                                    '%s',
     273                                    '%s',
     274                                    '%s',
     275                                    '%d'
     276                                )
     277                            );
     278                        }
     279                    }
     280                   
     281                    //contributor role
     282                    if((int)$map_role_contributor_token)
     283                    {
     284                        $users = get_users('role=contributor');
     285                        foreach ($users as $user) {
     286                           
     287                            $isvalidtoken = false;
     288                            while ($isvalidtoken == false)
     289                            {
     290                                $newtoken = randomChars(15);
     291                                if (!isset($existingtokens[$newtoken]))
     292                                {
     293                                    $isvalidtoken = true;
     294                                    $existingtokens[$newtoken] = null;
     295                                }
     296                            }
     297                            $sanitizedtoken = $newtoken;
     298                           
     299                            $contributor = $lsdb->insert(
     300                                $db_value_prefix.'tokens_'.$sid,
     301                                array(
     302                                    'firstname' => $user->user_login,
     303                                    'lastname' => $user->display_name,
     304                                    'email' => $user->user_email,
     305                                    'emailstatus' => "OK",
     306                                    'token' => $sanitizedtoken,
     307                                    'language' => $lang,
     308                                    'sent' => 'N',
     309                                    'remindersent' => 'N',
     310                                    'completed' => 'N',
     311                                    'usesleft' => 1
     312                                ),
     313                                array(
     314                                    '%s',
     315                                    '%s',
     316                                    '%s',
     317                                    '%s',
     318                                    '%s',
     319                                    '%s',
     320                                    '%s',
     321                                    '%s',
     322                                    '%s',
     323                                    '%d'
     324                                )
     325                            );
     326                        }
     327                    }
     328                }
     329               
     330               
     331            }
     332           
     333            $token_msg = '';
     334            if ( $token_value_sid_list != '' || $token_value_sid_list != null )
     335            {
     336                //construct new message!
     337                $token_msg = " Tokens added for users with roles :";
     338                if( (int)$map_role_subscriber_token )
     339                {
     340                    $token_msg .= " Subscriber";
     341                }
     342                if( (int)$map_role_administrator_token )
     343                {
     344                    $token_msg .= " Administrator";
     345                }
     346                if( (int)$map_role_editor_token )
     347                {
     348                    $token_msg .= " Editor";
     349                }
     350                if( (int)$map_role_author_token )
     351                {
     352                    $token_msg .= " Author";
     353                }
     354                if( (int)$map_role_contributor_token )
     355                {
     356                    $token_msg .= " Contributor";
     357                }
     358                $token_msg .=" in survey(s) with surveyid(s) :";
     359               
     360                $sid_token = explode( ',', $token_value_sid_list );
     361                foreach ( $sid_token as $sid )
     362                {
     363                   $token_msg .= " ".$sid;
     364                }
     365               
     366                $token_msg .=".";
     367            }
     368           
     369            //unset values;
     370            $token_value_sid_list         = '';
     371            $map_role_subscriber_token    = 0;
     372            $map_role_administrator_token = 0;
     373            $map_role_editor_token        = 0;
     374            $map_role_author_token        = 0;
     375            $map_role_contributor_token   = 0;
     376           
     377            update_option( $token_option_sid_list, $token_value_sid_list );
     378           
     379            update_option( 'map_role_subscriber_token', $map_role_subscriber_token );
     380            update_option( 'map_role_administrator_token', $map_role_administrator_token );
     381            update_option( 'map_role_editor_token', $map_role_editor_token );
     382            update_option( 'map_role_author_token', $map_role_author_token );
     383            update_option( 'map_role_contributor_token', $map_role_contributor_token );
    47384            // Put an settings updated message on the screen
    48385
     
    50387           
    51388            <div class='updated'>
    52                 <p><strong><?php _e('Settings saved.', 'menu-test' ); ?></strong></p>
     389                <p><strong><?php _e('Settings saved.', 'menu-test' );
     390                            if ( $token_msg != '' ) echo $token_msg; ?></strong></p>
    53391            </div>
    54392           
     
    56394
    57395        }
    58            
     396                   
    59397        //setting form here
    60398        ?>               
     
    110448        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="description">( If set to "Show", all users will see a "SurveyPress" tab in there dashboard  showing survey(s) to be taken, if they have been added to that survey. )</span>
    111449        <br />
    112         <span class="description">Useful only when you have some active surveys listed publicily in LS!</span>
     450        <span class="description">Useful only when you have some active surveys listed publicily in LimeSurvey!</span>
    113451       
    114452        </p>
     
    139477        <tr valign="top">
    140478        <th scope="row">
     479        <?php _e("Add token for users with following roles:", 'menu-test' ); ?>
     480        </th>
     481        <td>
     482        <p>
     483        <label>
     484        <input type="checkbox" name="map_role_subscriber_token" value="1" <?php if((int)$map_role_subscriber_token) { ?> checked="checked" <?php } ?> />
     485        <?php _e("Subscriber"); ?>
     486        </label>
     487        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
     488        <label>
     489        <input type="checkbox" name="map_role_administrator_token" value="1" <?php if((int)$map_role_administrator_token) { ?> checked="checked" <?php } ?> />
     490        <?php _e("Administrator"); ?>
     491        </label>
     492        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
     493        <label>
     494        <input type="checkbox" name="map_role_editor_token" value="1" <?php if((int)$map_role_editor_token) { ?> checked="checked" <?php } ?> />
     495        <?php _e("Editor"); ?>
     496        </label>
     497        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
     498        <label>
     499        <input type="checkbox" name="map_role_author_token" value="1" <?php if((int)$map_role_author_token) { ?> checked="checked" <?php } ?> />
     500        <?php _e("Author"); ?>
     501        </label>
     502        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
     503        <label>
     504        <input type="checkbox" name="map_role_contributor_token" value="1" <?php if((int)$map_role_contributor_token) { ?> checked="checked" <?php } ?> />
     505        <?php _e("Contributor"); ?>
     506        </label>
     507        <br />
     508        <b><?php _e("In surveys with surveyid:"); ?></b><br />
     509        <input type="text" name="<?php echo $token_option_sid_list; ?>" id="<?php echo $token_option_sid_list; ?>" value="<?php echo $token_value_sid_list; ?>" size="20" class="regular-text" />
     510        &nbsp;<span class="description">( Comma(,) separated list of surveyid(s) for which tokens must be added to there respective tables. )</span>
     511        <br /><span class="description">( Users with checked role(s) will have a token each in specified surveys above. Token added can be used only once! )</span>
     512       
     513        </p>
     514        </td>
     515        </tr>
     516       
     517        <tr valign="top">
     518        <th scope="row">
    141519        <?php _e("Import users from Wordpress to LimeSurvey?", 'menu-test' ); ?>
    142520        </th>
Note: See TracChangeset for help on using the changeset viewer.