Changeset 25118


Ignore:
Timestamp:
Oct 24, 2013, 6:21:24 PM (7 years ago)
Author:
mistic100
Message:

feature 2976: can change user status and level
fix saving problem of groups.is_default value
use WS_PARAM_OPTIONAL when possible (TODO: use for old methods)

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/ws_functions.inc.php

    r25117 r25118  
    32173217    array(
    32183218      'name' => $params['name'],
    3219       'is_default' => $params['is_default'],
     3219      'is_default' => boolean_to_string($params['is_default']),
    32203220      )
    32213221    );
     
    33133313  if ($params['is_default'] !== null)
    33143314  {
    3315     $updates['is_default'] = $params['is_default'];
     3315    $updates['is_default'] = boolean_to_string($params['is_default']);
    33163316  }
    33173317 
     
    35553555function ws_users_setInfo($params, &$service)
    35563556{
    3557   global $conf;
     3557  global $conf, $user;
    35583558 
    35593559  include_once(PHPWG_ROOT_PATH.'admin/include/functions.php');
     
    35643564  }
    35653565 
    3566   $updates = array();
     3566  $updates = $updates_infos = array();
    35673567  $params = array_map('trim', $params);
    35683568 
     
    35933593  {
    35943594    $updates[ $conf['user_fields']['password'] ] = $conf['password_hash']($params['password']);
     3595  }
     3596 
     3597  if (!empty($params['status']))
     3598  {
     3599    if ( $params['status'] == 'webmaster' and !is_webmaster() )
     3600    {
     3601      return new PwgError(403, 'Only webmasters can grant "webmaster" status');
     3602    }
     3603    if ( $user['id'] == $params['user_id'] )
     3604    {
     3605      $params['status'] = $user['status'];
     3606    }
     3607    if ( $conf['guest_id'] == $params['user_id'] )
     3608    {
     3609      $params['status'] = 'guest';
     3610    }
     3611    $updates_infos['status'] = $params['status'];
     3612  }
     3613 
     3614  if ($params['level'] !== null)
     3615  {
     3616    if ( !in_array($params['level'], $conf['available_permission_levels']) )
     3617    {
     3618      return new PwgError(WS_ERR_INVALID_PARAM, 'Invalid level');
     3619    }
     3620    $updates_infos['level'] = $params['level'];
    35953621  }
    35963622 
     
    36003626    array($conf['user_fields']['id'] => $params['user_id'])
    36013627    );
     3628   
     3629  single_update(
     3630    USER_INFOS_TABLE,
     3631    $updates_infos,
     3632    array('user_id' => $params['user_id'])
     3633    );
    36023634
    36033635  return $service->invoke('pwg.users.getList', array('user_id' => $params['user_id']));
  • trunk/ws.php

    r25117 r25118  
    708708      'ws_groups_getList',
    709709      array(
    710         'group_id' => array('default'=>null,
    711                             'flags'=>WS_PARAM_FORCE_ARRAY,
     710        'group_id' => array('flags'=>WS_PARAM_OPTIONAL|WS_PARAM_FORCE_ARRAY,
    712711                            'type'=>WS_TYPE_ID),
    713         'name' =>     array('default'=>null,
     712        'name' =>     array('flags'=>WS_PARAM_OPTIONAL,
    714713                            'info'=>'Use "%" as wildcard.'),
    715714        'per_page' => array('default'=>100,
     
    756755      array(
    757756        'group_id' =>   array('type'=>WS_TYPE_ID),
    758         'name' =>       array('default'=>null),
    759         'is_default' => array('default'=>null,
     757        'name' =>       array('flags'=>WS_PARAM_OPTIONAL),
     758        'is_default' => array('flags'=>WS_PARAM_OPTIONAL,
    760759                              'type'=>WS_TYPE_BOOL),
    761760        ),
     
    795794      'ws_users_getList',
    796795      array(
    797         'user_id' =>    array('default'=>null,
    798                               'flags'=>WS_PARAM_FORCE_ARRAY,
     796        'user_id' =>    array('flags'=>WS_PARAM_OPTIONAL|WS_PARAM_FORCE_ARRAY,
    799797                              'type'=>WS_TYPE_ID),
    800         'username' =>   array('default'=>null,
     798        'username' =>   array('flags'=>WS_PARAM_OPTIONAL,
    801799                              'info'=>'Use "%" as wildcard.'),
    802         'status' =>     array('default'=>null,
    803                               'flags'=>WS_PARAM_FORCE_ARRAY,
     800        'status' =>     array('flags'=>WS_PARAM_OPTIONAL|WS_PARAM_FORCE_ARRAY,
    804801                              'info'=>'guest,generic,normal,admin,webmaster'),
    805802        'min_level' =>  array('default'=>0,
    806803                              'maxValue'=>max($conf['available_permission_levels']),
    807804                              'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE),
    808         'group_id' =>   array('default'=>null,
    809                               'flags'=>WS_PARAM_FORCE_ARRAY,
     805        'group_id' =>   array('flags'=>WS_PARAM_OPTIONAL|WS_PARAM_FORCE_ARRAY,
    810806                              'type'=>WS_TYPE_ID),
    811807        'per_page' =>   array('default'=>100,
     
    852848      array(
    853849        'user_id' =>  array('type'=>WS_TYPE_ID),
    854         'username' => array('default'=>null),
    855         'password' => array('default'=>null),
    856         'email' =>    array('default'=>null),
     850        'username' => array('flags'=>WS_PARAM_OPTIONAL),
     851        'password' => array('flags'=>WS_PARAM_OPTIONAL),
     852        'email' =>    array('flags'=>WS_PARAM_OPTIONAL),
     853        'status' =>   array('flags'=>WS_PARAM_OPTIONAL,
     854                            'info'=>'generic,normal,admin'),
     855        'level'=>     array('flags'=>WS_PARAM_OPTIONAL,
     856                            'maxValue'=>max($conf['available_permission_levels']),
     857                            'type'=>WS_TYPE_INT|WS_TYPE_POSITIVE),
    857858        ),
    858859      '<b>Admin & POST only.</b> Updates a user. Leave a field blank to keep the current value.',
Note: See TracChangeset for help on using the changeset viewer.