Changeset 2499

Show
Ignore:
Timestamp:
09/19/06 12:09:22 (5 months ago)
Author:
arius
Message:

#1219 merge of Ajt's project (lu-branche)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/liveuser/etc/default.conf.dist.ini

    r2199 r2499  
    7070profiling               = false 
    7171emailAdminThreshold     = 'PEAR_LOG_EMERG' 
    72 showBugReporterLink     = tru
     72showBugReporterLink     = fals
    7373showUntranslated        = true 
    7474dataObject              = 0 
     
    8282[permission] 
    8383driver                  = liveuser; 
     84constantsFile           = lib/SGL/Perm/rights.php; 
    8485 
    8586[navigation] 
     
    158159[tuples] 
    159160version                 = 
     161 
     162[category] 
     163publicationID           = 0 
  • branches/liveuser/lib/SGL/Perm/Container/LiveUser.php

    r2200 r2499  
    5353                'destroy'  => true, 
    5454             ), 
    55             'authContainers' => array( 'DB' => 
     55            'authContainers' => array( 
    5656                array( 
    5757                    'type'          => 'DB', 
     
    150150    { 
    151151        static $rightIds; 
    152          
     152 
    153153        if (isset($rightIds) && !$forceReload) { 
    154154            return $rightIds; 
     
    165165        } 
    166166 
    167         $aRights = $this->container->getRights(); 
    168  
    169         foreach ($aRights as $key => $aValue) { 
    170             $aRightIds[] = $aValue['right_id']; 
    171         } 
    172          
     167        $param['fields'] = array('right_id'); 
     168        $param['filters'] = array('perm_user_id' => $userId); 
     169        $param['by_group'] = true; 
     170        $aRights = $this->container->perm->getRights($param); 
     171 
    173172        // write into session 
    174         $_SESSION['liveuserRights'] = $aRightIds; 
    175          
    176         return $aRightIds; 
     173        $_SESSION['liveuserRights'] = $aRights; 
     174         
     175        return $aRights; 
    177176    } 
    178177       
     
    216215            return array(); 
    217216        } 
    218          
    219         $rightIn = implode(',', $rights); 
    220          
     217 
     218        foreach ($rights as $key => $aValue) { 
     219            $aRight[] = $aValue['right_id'];    
     220        }         
     221 
     222        $rightIn = implode(',', $aRight); 
     223 
    221224        $whereInClause = ' right_id IN (' . $rightIn . ')'; 
    222225         
     
    224227                    FROM    right_permission 
    225228                    WHERE   ' . $whereInClause; 
    226          
     229 
    227230        $dbh = & SGL_DB::singleton(); 
    228231        $aRightPerms = $dbh->getCol($query); 
     232 
    229233        if (is_a($aRightPerms, 'PEAR_Error')) { 
    230234           return SGL::raiseError('There was a problem retrieving perms',  
    231235                SGL_ERROR_NODATA); 
    232236                } 
     237 
    233238        return $aRightPerms; 
    234239    } 
  • branches/liveuser/lib/SGL/Perm/Perm.php

    r2200 r2499  
    22 
    33require_once 'DB/DataObject.php'; 
     4require_once SGL_MOD_DIR .'/user/classes/DA_User.php'; 
    45 
    56/** 
     
    1112 * @since   PHP 4.1 
    1213 */ 
     14 
    1315class SGL_Perm 
    1416{ 
     
    6668         
    6769        $user = &SGL_Perm::singletonUsr(); 
    68  
    69         $conf = &$GLOBALS['_SGL']['CONF']; 
    70         /* 
    71         if (!isset($_SESSION['prefs'])) { 
    72             $_SESSION['prefs'] = PreferenceMgr::getPrefsByUid(Session::getUid()); 
    73         } 
    74         */ 
     70        $c      = & SGL_Config::singleton(); 
     71        $conf = $c->getAll(); 
    7572 
    7673        // options for permission package    
    77         $options['handle']              = $user->username
    78         $options['password']            = $user->passwd
     74        $options['handle']              = (!empty($user->username)) ? $user->username : ''
     75        $options['password']            = (!empty($user->passwd)) ? $user->passwd : ''
    7976        $options['sessionTimeout']      = $_SESSION['aPrefs']['sessionTimeout']; 
    80         $options['sessionMaxLifetime']  = $conf['site']['sessionMaxLifetime']; 
     77        $options['sessionMaxLifetime']  = $_SESSION['aPrefs']['sessionTimeout']; 
    8178        $options['authTable']           = $conf['table']['user']; 
    8279 
    8380        // If class exists, return a new instance of it. 
    8481        if (class_exists($class)) { 
    85             return new $class($options); 
     82            $obj = & new $class($options); 
     83            return $obj; 
    8684        } 
    8785 
  • branches/liveuser/lib/SGL/Session.php

    r2135 r2499  
    321321    } 
    322322 
     323    function hasCatPerm($catID) 
     324    { 
     325        if ($this->conf['permission']['driver'] == 'liveuser' && !empty($catID)) { 
     326            //  retrieve category right 
     327            require_once SGL_MOD_DIR .'/liveuser/classes/LUAdmin.php'; 
     328            $admin              = & LUAdmin::singleton(); 
     329            $catPermConstant    = 'CATEGORY_'. $catID; 
     330            $aParam['filters']  = array('right_define_name' => $catPermConstant); 
     331            $aRight             = $admin->perm->getRights($aParam); 
     332 
     333            if (!empty($aRight)) { 
     334                //  retrieve category perm above 
     335                require_once SGL_CORE_DIR .'/Perm/Perm.php'; 
     336                $perm = &SGL_Perm::singleton('liveuser'); 
     337                $aRightsPerms = $perm->getPermsByRights(array($aRight[0])); 
     338            } 
     339 
     340            // check if user has perm 
     341            if (!empty($aRightsPerms) && SGL_Session::hasPerms($aRightsPerms[0])) { 
     342               return true; 
     343            } 
     344            return false; 
     345        } else { 
     346            return false; 
     347        } 
     348    } 
     349 
    323350    function currentUserIsOwner($ownerId) 
    324351    { 
  • branches/liveuser/lib/SGL/String.php

    r2125 r2499  
    507507//         $s = preg_replace('!&[^;\s]+;!','',$s);    ## remove HTML entities. 
    508508         $s = preg_replace('!&#?[A-Za-z0-9]{1,7};?!', '', $s);    ## remove HTML entities. 
    509          $s = preg_replace('![^\w\s-]!', '',$s);    ## remove non-word/space chars. 
     509         $s = preg_replace('![^\w\/\s-]!', '',$s);    ## remove non-word/space chars. 
    510510         $s = preg_replace('!\s+!', '_',$s);        ## change space chars to underscores. 
    511511         return $s; 
  • branches/liveuser/modules/default/classes/DA_Default.php

    r2135 r2499  
    188188    } 
    189189 
     190    function getModuleIdByName($name) 
     191    { 
     192        $query = " 
     193            SELECT module_id  
     194            FROM {$this->conf['table']['module']}  
     195            WHERE name=". $this->dbh->quote($name); 
     196        $result = $this->dbh->getOne($query); 
     197        return $result;    
     198    } 
     199 
    190200    function addModule($oModule) 
    191201    { 
  • branches/liveuser/modules/default/classes/MaintenanceMgr.php

    r2135 r2499  
    102102    { 
    103103        require_once SGL_CORE_DIR . '/Task/Install.php'; 
    104         $res = SGL_Task_CreateDataObjectEntities::run(); 
     104 
     105        //  First regenerate entities files 
     106        $resEntities = SGL_Task_CreateDataObjectEntities::run(); 
     107 
     108        //  Then regenerate links file 
     109        $data['aModuleList'] = SGL_Util::getAllModuleDirs($onlyRegistered = true); 
     110        $resLinks = SGL_Task_CreateDataObjectLinkFile::run($data); 
    105111        SGL::raiseMsg('Data Objects rebuilt successfully', true, SGL_MESSAGE_INFO); 
    106         SGL::logMessage($res, PEAR_LOG_DEBUG); 
    107112    } 
    108113 
  • branches/liveuser/modules/liveuser/classes/LUAdmin.php

    r2415 r2499  
    3838            return $admin->getErrors();   
    3939        } 
    40          
     40 
    4141        return $admin; 
    4242    } 
     
    257257        $query = " 
    258258                SELECT      lgu.group_id, lt.name 
    259                 FROM        {$this->conf['table']['liveuser_groupusers']} lgu, 
    260                             {$this->conf['table']['liveuser_groups']} lg  
     259                FROM        {$this->conf['table']['liveuser_groups']} lg  
     260                LEFT JOIN   {$this->conf['table']['liveuser_groupusers']} lgu ON lgu.group_id = lg.group_id  
    261261                LEFT JOIN   liveuser_translations lt ON lt.section_id = lg.group_id  
    262                 WHERE       lg.group_id = lgu.group_id 
    263                 AND         lt.section_type = ".LIVEUSER_SECTION_GROUP." 
     262                WHERE       lt.section_type = ".LIVEUSER_SECTION_GROUP." 
    264263                AND         lgu.perm_user_id = " . $userId . " 
    265264                ORDER BY    lt.name"; 
    266265         
    267266        $dbh = &SGL_DB::singleton(); 
    268          
    269          
     267 
    270268        $aGroups = $dbh->getAssoc($query);         
    271                
     269 
    272270        return $aGroups; 
     271    } 
     272 
     273    function getUsersByGroupId($id) 
     274    { 
     275        if (is_array($id) && !empty($id)) { 
     276            $groups = implode(',', $id); 
     277            $whereClause = " WHERE group_id IN ($groups)"; 
     278        } else { 
     279            $whereClause = " WHERE group_id=$id"; 
     280        } 
     281        $dbh = &SGL_DB::singleton(); 
     282        $query = " 
     283            SELECT perm_user_id, group_id  
     284            FROM liveuser_groupusers  
     285            $whereClause"; 
     286        $result = $dbh->getAssoc($query); 
     287 
     288        return $result; 
    273289    } 
    274290 
  • branches/liveuser/modules/liveuser/classes/LUGroupsMgr.php

    r2196 r2499  
    11<?php 
    22require_once SGL_ENT_DIR . '/Liveuser_groupusers.php'; 
     3require_once SGL_ENT_DIR . '/Liveuser_grouprights.php'; 
    34require_once SGL_MOD_DIR . '/liveuser/classes/LUAdmin.php'; 
    45 
     
    106107         
    107108        $data = $this->_cmd_buildFilterData($input); 
    108         $groupId = $admin->perm->addGroup($data); 
    109         if ($groupId === false) { 
     109        $output->groupId = $admin->perm->addGroup($data); 
     110        if ($output->groupId === false) { 
    110111             LUAdmin::raiseError($admin);   
    111112        } else { 
    112             $translation = $this->_cmd_buildGroupTranslationData($input,$groupId); 
     113            $translation = $this->_cmd_buildGroupTranslationData($input, $output->groupId); 
    113114            $result = $admin->perm->addTranslation($translation); 
    114115            if ($result === false) { 
     
    197198         
    198199        $admin = &LUAdmin::singleton(); 
    199         if (!is_a($admin, 'liveuser_admin')) { 
    200             print '<pre>'; print_r($admin);die(); 
    201         } 
    202 //        $aParams['fields'] = array('name', 'description'); 
    203         $groups = $admin->perm->getGroups(); 
     200        $aParams['fields'] = array('group_id', 'group_define_name', 'name', 'description'); 
     201        $groups = $admin->perm->getGroups($aParams); 
    204202 
    205203        // get members quantity 
     
    209207            $groups[$key]['members_quantity'] = $liveuserGroupUsers->find(); 
    210208        } 
     209 
     210        // get members quantity 
     211        foreach ($groups as $key => $group) { 
     212            $liveuserGroupRights = & new DataObjects_Liveuser_grouprights;  
     213            $liveuserGroupRights->group_id = $group['group_id']; 
     214            $groups[$key]['rights_quantity'] = $liveuserGroupRights->find(); 
     215        } 
     216 
    211217        $output->groups = &$groups; 
    212218        $output->addOnLoadEvent("document.getElementById('frmUserMgrChooser').groups.disabled = true"); 
     
    267273         
    268274        //  get set of rights associated with group 
    269         $aGroupRights = $this->getRightsDetailsByGroupId($input->group_id); 
     275        $aGroupRights = (array) $this->getRightsDetailsByGroupId($input->group_id); 
    270276        asort($aGroupRights); 
    271277        $output->groupRightOptions = SGL_Output::generateSelect($aGroupRights); 
    272278 
    273279        //  get remaining rights 
    274         $aRemainingRights = $this->retrieveAllOthersRights($aGroupRights); 
     280        $aRemainingRights = (array) $this->retrieveAllOthersRights($aGroupRights); 
    275281        asort($aRemainingRights); 
    276282        $output->remainingRightsOptions = SGL_Output::generateSelect($aRemainingRights); 
     
    425431         
    426432        //  get set of members associated with group 
    427         $aGroupMembers = $this->getMembersDetailsByGroupId($input->group_id); 
     433        $aGroupMembers = (array) $this->getMembersDetailsByGroupId($input->group_id); 
    428434        asort($aGroupMembers); 
    429435        $output->groupMemberOptions = SGL_Output::generateSelect($aGroupMembers); 
    430436 
    431437        //  get remaining members 
    432         $aRemainingMembers = $this->retrieveAllOthersMembers($aGroupMembers); 
     438        $aRemainingMembers = (array) $this->retrieveAllOthersMembers($aGroupMembers); 
    433439        asort($aRemainingMembers); 
    434440        $output->remainingMembersOptions = SGL_Output::generateSelect($aRemainingMembers); 
     
    511517         
    512518        $query = " 
    513             SELECT  gu.perm_user_id, CONCAT(u.last_name, ' ', u.first_name, ' (', u.username, ')') as name 
     519            SELECT  gu.perm_user_id, u.username 
    514520            FROM    liveuser_groupusers gu, usr u 
    515521            WHERE   gu.perm_user_id = u.usr_id 
    516522            AND     gu.group_id = $groupId 
    517             ORDER BY u.last_name, u.first_name"; 
     523            ORDER BY u.username"; 
    518524         
    519525        $dbh = & SGL_DB::singleton(); 
     
    543549        } 
    544550        $query = ' 
    545             SELECT  u.usr_id, CONCAT(u.last_name, " ", u.first_name, " (", u.username, ")") as name 
     551            SELECT  u.usr_id, u.username  
    546552            FROM    usr u'; 
    547553        if (count($aGroupMembers) > 0) { 
    548554            $query .= " WHERE $whereClause"; 
    549555        } 
    550         $query .= ' ORDER BY u.last_name, u.first_name'; 
     556        $query .= ' ORDER BY u.username'; 
    551557         
    552558        $dbh = &SGL_DB::singleton(); 
     
    620626    { 
    621627        $data = array( 
    622             'group_define_name' => LUAdmin::convertToConstant($input->group['name']), //$input->group['group_define_name']
     628            'group_define_name' => LUAdmin::convertToConstant($input->group['group_define_name'])
    623629        ); 
    624630        return $data; 
  • branches/liveuser/modules/liveuser/classes/LURightsMgr.php

    r2203 r2499  
    9191         
    9292        $data = $this->_cmd_buildRightData($input); 
    93         $rightId = $admin->perm->addRight($data); 
    94         if ($rightId === false) { 
     93        $output->rightId = $admin->perm->addRight($data); 
     94        if ($output->rightId === false) { 
    9595             LUAdmin::raiseError($admin);                      
    9696        } else { 
    97             $translation = $this->_cmd_buildRightTranslationData($input,$rightId); 
     97            $translation = $this->_cmd_buildRightTranslationData($input,$output->rightId); 
    9898            $result = $admin->perm->addTranslation($translation); 
    9999            if ($result === false) { 
  • branches/liveuser/modules/liveuser/classes/LUUsersMgr.php

    r2415 r2499  
    111111         
    112112        $dbh = & SGL_DB::singleton(); 
    113          
     113        $LUA = & LUAdmin::singleton(); 
     114 
    114115        if ($action == SGL_LIVEUSER_REMOVE) { 
    115116            foreach ($aGroups as $groupId => $name) { 
    116                 $dbh->query("   DELETE FROM liveuser_groupusers 
    117                                 WHERE   perm_user_id = $userId 
    118                                 AND     group_id = $groupId");                                 
    119                 if (PEAR::isError($dbh)) { 
    120                     return false; 
    121                 }                                 
    122             } 
     117                $filter = array( 
     118                    'perm_user_id' => $userId, 
     119                    'group_id' => $groupId 
     120                ); 
     121                $removed = $LUA->perm->removeUserFromGroup($filter); 
     122            }     
    123123             
    124124        } else { 
    125125            //  add groups 
    126126            foreach ($aGroups as $groupId => $name) { 
    127                 $dbh->query("   INSERT INTO liveuser_groupusers 
    128                                 (perm_user_id, group_id) 
    129                                 VALUES ($userId, $groupId)"); 
    130                 if (PEAR::isError($dbh)) { 
    131                     return false; 
    132                 }                                                 
     127                $filter = array( 
     128                    'perm_user_id' => $userId, 
     129                    'group_id' => $groupId 
     130                ); 
     131                $added = $LUA->perm->addUserToGroup($filter); 
    133132            } 
    134133        } 
     
    150149        $query = " 
    151150            SELECT  gu.group_id, lt.name 
    152             FROM    liveuser_groups g, liveuser_groupusers gu 
     151            FROM    liveuser_groupusers gu  
     152            LEFT JOIN liveuser_groups g ON g.group_id = gu.group_id 
    153153            LEFT JOIN liveuser_translations lt ON lt.section_id = gu.group_id      
    154154            WHERE   gu.group_id = g.group_id 
    155             AND     section_type = ".LIVEUSER_SECTION_GROUP."                     
     155            AND     lt.section_type = ".LIVEUSER_SECTION_GROUP."                     
    156156            AND     gu.perm_user_id = $userId 
    157157            "; 
    158          
     158 
    159159        $dbh = & SGL_DB::singleton(); 
    160160        $data = $dbh->getAssoc($query); 
  • branches/liveuser/modules/liveuser/data/schema.pg.sql

    r2191 r2499  
    159159  name varchar(50) NOT NULL default '', 
    160160  description varchar(255) default NULL, 
    161   PRIMARY KEY  (section_id,section_type,language_id), 
    162   UNIQUE (translation_id) 
     161  PRIMARY KEY  (translation_id,section_id,section_type,language_id) 
    163162); 
    164163create index translation_id on liveuser_translations (translation_id); 
  • branches/liveuser/modules/liveuser/templates/admin_luGroupsList.html

    r2195 r2499  
    2323                        <th>{translate(#Select#)}</th> 
    2424                        <th>{translate(#Group ID#)}</th> 
     25                        <th>{translate(#Name#)}</th> 
    2526                        <th>{translate(#Group Constant#)}</th> 
    2627                        <th>{translate(#Members#)}</th> 
     
    3334                        <td align="center"><input class="noBorder" type="checkbox" name="frmDelete[]" value="{valueObj[group_id]}" flexy:raw="{valueObj.disabled}"></td> 
    3435                        <td align="center">{valueObj[group_id]}</td> 
     36                        <td>{valueObj[name]}</td> 
    3537                        <td>{valueObj[group_define_name]}</td> 
    3638                        <!--<td align="center">{substr(valueObj[description],0,100)}</td>--> 
     
    4143                        </td> 
    4244                        <td align="center"> 
     45                            (<strong>{valueObj[rights_quantity]}</strong>)  
    4346                            <input type="button" name="frmReset" value="change" 
    4447                                onClick="javascript:document.location.href='{makeUrl(#editRights#,#lugroups#,#liveuser#,groups,#group_id|group_id#,key)}'" /> 
  • branches/liveuser/modules/liveuser/templates/admin_luRightEditPerms.html

    r2195 r2499  
    2121                <tr> 
    2222                    <td align="center" colspan="2"><b>Changing Permission 
    23                     Assignments for {right.name}</b></td> 
     23                    Assignments for {right.right_define_name}</b></td> 
    2424                </tr> 
    2525                <tr> 
     
    2828                <tr> 
    2929                    <th width="30%" nowrap>Right Name</TH> 
    30                     <td class="left" width="70%">{right.name} 
    31                     ({right.right_define_name})</TD> 
     30                    <td class="left" width="70%">({right.right_define_name})</td> 
    3231                </tr> 
    3332                <tr> 
     
    3837                            <td>others</td> 
    3938                            <td> </td> 
    40                             <td>selected '{right.name}' permissions</td> 
     39                            <td>selected '{right.right_define_name}' permissions</td> 
    4140                        </tr> 
    4241                        <tr> 
     
    6261                            type="submit" onclick="lockChanges();" />  
    6362                        <input class="wideButton" type="button" value="{translate(#Cancel#)}" 
    64                             onClick="javascript:='{makeUrl(##,#lurights#,#liveuser#)}'" /> 
    6564                    </td> 
    6665                </tr> 
  • branches/liveuser/modules/user/blocks/Login.php

    r2135 r2499  
    6565        if ($this->uid == SGL_GUEST) { 
    6666            return $this->getLoginScreen($output); 
    67         } else { 
    68             return $this->getLogoutScreen(); 
    6967        } 
    7068    } 
     
    8078            $password = ''; 
    8179        } 
    82         $login = '<form method="post" action="'.SGL_Output::makeUrl("login","login","user").'" id="loginBlock"> 
     80        $login = '<form method="post" action="'.SGL_Output::makeUrl("login","login","user").'" id="si_login"> 
    8381                    <input name="action" value="login" type="hidden" /> 
    8482                    <input name="redir" value="" type="hidden" /> 
    85                     <span class="error">* </span>'.SGL_String::translate('Username').' 
    86                     <input name="frmUsername" size="15" value="'.$username.'" maxlength="36" type="text" /> 
    87                     <span class="error">* </span>'.SGL_String::translate('Password').' 
    88                     <input name="frmPassword" value="'.$password.'" size="15" maxlength="24" type="password" /> 
    89                     <p class="alignCenter"><input name="submitted" value="'.SGL_String::translate('Login').'" type="submit" /></p> 
    90                     <p><a href="'.SGL_Url::makeLink('', 'register', 'user').'">'.SGL_String::translate('Not Registered').'</a><br /> 
    91                     <a href="'.SGL_Url::makeLink('', 'password', 'user').'">'.SGL_String::translate('Forgot Password').'</a></p> 
    92                     <span class="small"><span class="error">*</span>'.SGL_String::translate('denotes required field').'</span></form>'; 
     83                    '.SGL_String::translate('Username').'<br /> 
     84                    <input name="frmUsername" size="15" value="'.$username.'" maxlength="36" type="text" /><br /> 
     85                    '.SGL_String::translate('Password').'<br /> 
     86                    <input name="frmPassword" value="'.$password.'" size="15" maxlength="24" type="password" /><br /> 
     87                    <table border="0" cellspacing="0" cellpadding="0"> 
     88                        <tr> 
     89                            <td width="120"> 
     90                                <a href="'.SGL_Url::makeLink('', 'register', 'user').'">'.SGL_String::translate('Register').'</a><br /> 
     91     
     92                                <a href="'.SGL_Url::makeLink('', 'password', 'user').'">'.SGL_String::translate('Password Help').'</a>                         
     93                            </td> 
     94                            <td width="50"> 
     95     
     96                                <input class="si_login_button" name="submitted" value="Login" type="submit" /> 
     97                            </td> 
     98                        </tr> 
     99                    </table> 
     100                </form>'; 
    93101        return $login; 
    94     } 
    95  
    96     function getLogoutScreen() 
    97     { 
    98         $logout  = SGL_String::translate('user').': '.$this->username.'<br />'; 
    99         $logout .= SGL_String::translate('session started at').': '.$this->startTime.'<br /> <br>'; 
    100         $logout .= '<a href="'.SGL_Url::makeLink('logout', 'login', 'user').'">'.SGL_String::translate('logout').'</a>'; 
    101         return $logout; 
    102102    } 
    103103} 
  • branches/liveuser/modules/user/classes/DA_User.php

    r2199 r2499  
    6363    { 
    6464        parent::SGL_Manager(); 
    65  
    66         if ($this->conf['permission']['driver'] == 'liveuser') { 
    67             require_once SGL_CORE_DIR .'/Perm/Perm.php'; 
    68             $this->perm = &SGL_Perm::singleton('liveuser'); 
    69         } 
    7065    } 
    7166 
     
    222217    function getUserById($id = null) 
    223218    { 
     219        SGL::logMessage(null, PEAR_LOG_DEBUG); 
     220 
    224221        $oUser = DB_DataObject::factory($this->conf['table']['user']); 
    225222        if (!is_null($id)) { 
     
    328325        //  in case of LU 
    329326        if ($this->conf['permission']['driver'] == 'liveuser') { 
    330             $rights = $this->perm->readRights($force = true, $userId); 
    331             $aRightsPerms = $this->perm->getPermsByRights($rights); 
     327            require_once SGL_CORE_DIR .'/Perm/Perm.php'; 
     328            $perm = &SGL_Perm::singleton('liveuser'); 
     329 
     330            $rights = $perm->readRights($force = true, $userId); 
     331            $aRightsPerms = $perm->getPermsByRights($rights); 
    332332            if(!empty($aRightsPerms)) { 
    333333                $aUserPerms = array_merge($aUserPerms, $aRightsPerms); 
     
    380380        } 
    381381        return $aAllPerms; 
     382    } 
     383 
     384    function getPermIdByName($name, $moduleId = null) 
     385    { 
     386        $moduleClause = (is_null($moduleId)) ? '' : ' AND module_id = '. $moduleId; 
     387        $query = " 
     388            SELECT permission_id  
     389            FROM {$this->conf['table']['permission']} 
     390            WHERE name = ". $this->dbh->quote($name) ." 
     391            $moduleClause 
     392            "; 
     393        $result = $this->dbh->getOne($query); 
     394        return $result; 
    382395    } 
    383396 
  • branches/liveuser/modules/user/classes/RegisterMgr.php

    r2125 r2499  
    156156 
    157157            //  check for hacks - only admin user can set certain attributes 
    158             if ((SGL_Session::getUid() != SGL_ADMIN 
     158            if ((SGL_Session::getRoleId() != SGL_ADMIN 
    159159                    && count(array_filter(array_flip($req->get('user')), array($this, 'containsDisallowedKeys'))))) { 
    160160                $msg = 'Hack attempted by ' .$_SERVER['REMOTE_ADDR'] . ', IP logged'; 
  • branches/liveuser/modules/user/templates/admin_account.html

    r2135 r2499  
    66<div id="content"> 
    77    <div id="content-header"> 
    8         <h2>{translate(pageTitle)}</h2> 
    98        <div class="message">{msgGet()}</div> 
    109    </div> 
  • branches/liveuser/modules/user/templates/admin_accountSummary.html

    r2135 r2499  
    55<div id="content"> 
    66    <div id="content-header"> 
    7         <h2>{translate(pageTitle)}</h2> 
    87        <div class="message">{msgGet()}</div> 
    98    </div> 
  • branches/liveuser/modules/user/templates/admin_orgEdit.html

    r2135 r2499  
    77<div id="content"> 
    88    <div id="content-header"> 
    9         <h2>{translate(pageTitle)}</h2> 
    109        <div class="message">{msgGet()}</div> 
    1110    </div> 
     
    113112            <span class="required">*</span> <span class="small">{translate(#denotes required field#)}</span> 
    114113        </p> 
     114        <p> 
     115            <input type="submit" class="wideButton" name="submitted" value="{translate(#Save#)}" accesskey="s" /> 
     116            <input type="button" class="wideButton" onclick="javascript:document.location.href='{makeUrl(##,#org#,#user#)}'" value="{translate(#Cancel#)}" accesskey="c" /> 
     117        </p> 
    115118    </form> 
    116119    <div class="spacer"></div> 
  • branches/liveuser/modules/user/templates/admin_orgManager.html

    r2135 r2499  
    88<div id="content"> 
    99    <div id="content-header"> 
    10         <h2>{translate(pageTitle)}</h2> 
    1110        <div class="message">{msgGet()}</div> 
    1211    </div> 
     
    5049                        <td class="left">{org[telephone]}</td> 
    5150                        <td> 
    52                             <a class="sgl-button" href="{makeUrl(#editAll#,#orgpreference#,#user#,results,#frmOrgId|organisation_id#,k)}">{translate(#change#)}</a> 
     51                            <a class="wideButton" href="{makeUrl(#editAll#,#orgpreference#,#user#,results,#frmOrgId|organisation_id#,k)}">{translate(#change#)}</a> 
    5352                        </td> 
    5453                    </tr> 
    5554                </tbody> 
    5655            </table> 
    57             <input type="submit" class="sgl-button" name="delete" value="{translate(#delete selected#)}" onClick="return confirmSubmit('{translate(#organisation#)}', 'orgs')" /> 
     56            <input type="submit" class="wideButton" name="delete" value="{translate(#delete selected#)}" onClick="return confirmSubmit('{translate(#organisation#)}', 'orgs')" /> 
    5857        </fieldset> 
    5958    </form> 
  • branches/liveuser/modules/user/templates/admin_orgTypeEdit.html

    r2135 r2499  
    77<div id="content"> 
    88    <div id="content-header"> 
    9         <h2>{translate(pageTitle)}</h2> 
    109        <div class="message">{msgGet()}</div> 
    1110    </div> 
     
    3938            <span class="required">*</span> <span class="small">{translate(#denotes required field#)}</span> 
    4039        </p> 
     40        <p> 
     41            <input type="submit" class="wideButton" name="submitted" value="{translate(#Save#)}" accesskey="s" /> 
     42            <input type="button" class="wideButton" onclick="javascript:document.location.href='{makeUrl(##,#orgtype#,#user#)}'" value="{translate(#Cancel#)}" accesskey="c" /> 
     43        </p> 
    4144    </form> 
    4245    <div class="spacer"></div> 
  • branches/liveuser/modules/user/templates/admin_orgTypeList.html

    r2135 r2499  
    66<div id="content"> 
    77    <div id="content-header"> 
    8         <h2>{translate(pageTitle)}</h2> 
    98        <div class="message">{msgGet()}</div> 
    109    </div> 
     
    3635                </tbody> 
    3736            </table> 
    38             <input type="submit" class="sgl-button" name="delete" value="{translate(#delete selected#)}" onClick="return confirmSubmit('{translate(#organisation type#)}', 'orgTypes')" /> 
     37            <input type="submit" class="wideButton" name="delete" value="{translate(#delete selected#)}" onClick="return confirmSubmit('{translate(#organisation type#)}', 'orgTypes')" /> 
    3938        </fieldset> 
    4039    </form> 
  • branches/liveuser/modules/user/templates/admin_permAdd.html

    r2135 r2499  
    77<div id="content"> 
    88    <div id="content-header"> 
    9         <h2>{translate(pageTitle)}</h2> 
    109        <div class="message">{msgGet()}</div> 
    1110    </div> 
     
    3332            </p> 
    3433        </fieldset> 
     34        <p> 
     35            <input type="submit" class="wideButton" name="submitted" value="{translate(#Save#)}" accesskey="s" /> 
     36            <input type="button" class="wideButton" onclick="javascript:document.location.href='{makeUrl(##,#permission#,#user#)}'" value="{translate(#Cancel#)}" accesskey="c" /> 
     37        </p> 
    3538    </form> 
    3639    <div class="spacer"></div> 
  • branches/liveuser/modules/user/templates/admin_permEdit.html

    r2135 r2499  
    77<div id="content"> 
    88    <div id="content-header"> 
    9         <h2>{translate(pageTitle)}</h2> 
    109        <div class="message">{msgGet()}</div> 
    1110    </div> 
     
    3433            </p> 
    3534        </fieldset> 
     35        <p> 
     36            <input type="submit" class="wideButton" name="submitted" value="{translate(#Save#)}" accesskey="s" /> 
     37            <input type="button" class="wideButton" onclick="javascript:document.location.href='{makeUrl(##,#permission#,#user#)}'" value="{translate(#Cancel#)}" accesskey="c" /> 
     38        </p> 
    3639    </form> 
    3740    <div class="spacer"></div> 
  • branches/liveuser/modules/user/templates/admin_permManager.html

    r2135 r2499  
    77<div id="content"> 
    88    <div id="content-header"> 
    9         <h2>{translate(pageTitle)}</h2> 
    109        <div class="message">{msgGet()}</div> 
    1110    </div> 
     
    5958                </tbody> 
    6059            </table> 
    61             <input type="submit" class="sgl-button" name="delete" value="{translate(#delete selected#)}" onClick="return confirmSubmit('{translate(#permission#)}', 'perms')" /> 
     60            <input type="submit" name="delete" value="{translate(#delete selected#)}" onClick="return confirmSubmit('{translate(#permission#)}', 'perms')" /> 
    6261        </fieldset> 
    6362    </form> 
  • branches/liveuser/modules/user/templates/admin_permScan.html

    r2135 r2499  
    66<div id="content"> 
    77    <div id="content-header"> 
    8         <h2>{translate(pageTitle)}</h2> 
    98        <div class="message">{msgGet()}</div> 
    109    </div> 
  • branches/liveuser/modules/user/templates/admin_prefEdit.html

    r2135 r2499  
    77<div id="content"> 
    88    <div id="content-header"> 
    9         <h2>{translate(pageTitle)}</h2> 
    109        <div class="message">{msgGet()}</div> 
    1110    </div> 
     
    3534            </p> 
    3635        </fieldset> 
     36        <p> 
     37            <input type="submit" class="wideButton" name="submitted" value="{translate(#Save#)}" accesskey="s" /> 
     38            <input type="button" class="wideButton" onclick="javascript:document.location.href='{makeUrl(##,#preference#,#user#)}'" value="{translate(#Cancel#)}" accesskey="c" /> 
     39        </p> 
    3740    </form> 
    3841    <div class="spacer"></div> 
  • branches/liveuser/modules/user/templates/admin_prefManager.html

    r2135 r2499  
    55<div id="content"> 
    66    <div id="content-header"> 
    7         <h2>{translate(pageTitle)}</h2> 
    87        <div class="message">{msgGet()}</div> 
    98    </div> 
     
    4746                </tbody> 
    4847            </table> 
    49             <input type="submit" class="sgl-button" name="delete" value="{translate(#delete selected#)}" 
     48            <input type="submit" class="wideButton" name="delete" value="{translate(#delete selected#)}" 
    5049                   onClick="return confirmSubmit('{translate(#preference#)}', 'frmPrefManager')" /> 
    5150        </fieldset> 
  • branches/liveuser/modules/user/templates/admin_prefOrgEdit.html

    r2135 r2499  
    66<div id="content"> 
    77    <div id="content-header"> 
    8         <h2>{translate(pageTitle)}</h2> 
    98        <div class="message">{msgGet()}</div> 
    109    </div> 
     
    6665            </p> 
    6766        </fieldset> 
     67        <p> 
     68            <input type="submit" class="wideButton" name="submitted" value="{translate(#Save#)}" accesskey="s" /> 
     69            <input type="button" class="wideButton" onclick="javascript:document.location.href='{makeUrl(##,#org#,#user#)}'" value="{translate(#Cancel#)}" accesskey="c" /> 
     70        </p> 
    6871    </form> 
    6972    <div class="spacer"></div> 
  • branches/liveuser/modules/user/templates/admin_prefUserEdit.html

    r2135 r2499  
    66<div id="content"> 
    77    <div id="content-header"> 
    8         <h2>{translate(pageTitle)}</h2> 
    98        <div class="message">{msgGet()}</div> 
    109    </div> 
     
    6564            </p> 
    6665        </fieldset> 
     66        <p> 
     67            <input type="submit" class="wideButton" name="submitted" value="{translate(#Save#)}" accesskey="s" /> 
     68            <input type="button" class="wideButton" onclick="javascript:document.location.href='{makeUrl(##,#account#,#user#)}'" value="{translate(#Cancel#)}" accesskey="c" /> 
     69        </p> 
    6770    </form> 
    6871    <div class="spacer"></div> 
  • branches/liveuser/modules/user/templates/admin_roleEdit.html

    r2135 r2499  
    77<div id="content"> 
    88    <div id="content-header"> 
    9         <h2>{translate(pageTitle)}</h2> 
    109        <div class="message">{msgGet()}</div> 
    1110    </div> 
     
    3433            </p> 
    3534        </fieldset> 
     35        <p> 
     36            <input type="submit" class="wideButton" name="submitted" value="{translate(#Save#)}" accesskey="s" /> 
     37            <input type="button" class="wideButton" onclick="javascript:document.location.href='{makeUrl(##,#role#,#user#)}'" value="{translate(#Cancel#)}" accesskey="c" /> 
     38        </p> 
    3639    </form> 
    3740    <div class="spacer"></div> 
  • branches/liveuser/modules/user/templates/admin_roleEditPerms.html

    r2135 r2499  
    77<div id="content"> 
    88    <div id="content-header"> 
    9         <h2>{translate(pageTitle)}</h2> 
    109        <div class="message">{msgGet()}</div> 
    1110    </div> 
     
    3837            <div class="spacer"> </div> 
    3938        </fieldset> 
     39        <p> 
     40            <input type="submit" class="wideButton" name="submitted" value="{translate(#Save#)}" accesskey="s" /> 
     41            <input type="button" class="wideButton" onclick="javascript:document.location.href='{makeUrl(#list#,#role#,#user#)}'" value="{translate(#Cancel#)}" accesskey="c" /> 
     42        </p> 
    4043    </form> 
    4144    <div class="spacer"></div> 
  • branches/liveuser/modules/user/templates/admin_roleManager.html

    r2135 r2499  
    55<div id="content"> 
    66    <div id="content-header"> 
    7         <h2>{translate(pageTitle)}</h2> 
    87        <div class="message">{msgGet()}</div> 
    98    </div> 
     
    4847                        <td flexy:if="isAdminOrUnassigned(aValue[role_id])"> </td> 
    4948                        <td flexy:if="!isAdminOrUnassigned(aValue[role_id])"> 
    50                         <a href="{makeUrl(#editPerms#,#role#,#user#,aPagedData[data],#frmRoleID|role_id#,key)}" class="sgl-button">{translate(#change#)}</a> 
     49                        <a href="{makeUrl(#editPerms#,#role#,#user#,aPagedData[data],#frmRoleID|role_id#,key)}" class="wideButton">{translate(#change#)}</a> 
    5150                        </td> 
    5251                        <td flexy:if="isAdminOrUnassigned(aValue[role_id])"> </td> 
    5352                        <td flexy:if="!isAdminOrUnassigned(aValue[role_id])"> 
    54                         <a href="{makeUrl(#duplicate#,#role#,#user#,aPagedData[data],#frmRoleID|role_id#,key)}" class="sgl-button">{translate(#duplicate#)}</a> 
     53                        <a href="{makeUrl(#duplicate#,#role#,#user#,aPagedData[data],#frmRoleID|role_id#,key)}" class="wideButton">{translate(#duplicate#)}</a> 
    5554                        </td> 
    5655                    </tr> 
    5756                </tbody> 
    5857            </table> 
    59             <input type="submit" class="sgl-button" name="delete" value="{translate(#delete selected#)}" onClick="return confirmSubmit('{translate(#role#)}', 'roles')" /> 
     58            <input type="submit" class="wideButton" name="delete" value="{translate(#delete selected#)}" onClick="return confirmSubmit('{translate(#role#)}', 'roles')" /> 
    6059        </fieldset> 
    6160    </form> 
  • branches/liveuser/modules/user/templates/admin_userAdd.html

    r2135 r2499  
    66<div id="content"> 
    77    <div id="content-header"> 
    8         <h2>{translate(pageTitle)}</h2> 
    98        <div class="message">{msgGet()}</div> 
    109    </div> 
     
    156155            <span class="required">*</span> <span class="small">{translate(#denotes required field#)}</span> 
    157156        </p> 
     157        <p> 
     158            <input type="submit" class="wideButton" name="submitted" value="{translate(#Save#)}" accesskey="s" /> 
     159            <input type="button" class="wideButton" onclick="javascript:document.location.href='{makeUrl(##,#user#,#user#)}'" value="{translate(#Cancel#)}" accesskey="c" /> 
     160        </p> 
    158161    </form> 
    159162    <div class="spacer"></div> 
  • branches/liveuser/modules/user/templates/admin_userImport.html

    r2135 r2499  
    66<div id="content"> 
    77    <div id="content-header"> 
    8         <h2>{translate(pageTitle)}</h2> 
    98        <div class="message">{msgGet()}</div> 
    109    </div> 
  • branches/liveuser/modules/user/templates/admin_userManager.html

    r2203 r2499  
    77<div id="content"> 
    88    <div id="content-header"> 
    9         <h2>{translate(pageTitle)}</h2> 
    109        <div class="message">{msgGet()}</div> 
    1110    </div> 
     
    3332                        </th> 
    3433                        <th width="3%"><a href="{makeUrl(#list#,#user#,#user#,##,#frmSortBy|usr_id||frmSortOrder|sortOrder#)}" title="{translate(#Sort by#)} {translate(#ID#)}">{translate(#ID#)}</a>{if:sort_usr_id}<img src="{webRoot}/themes/{theme}/images/sort_{sortOrder}.gif" alt="" />{end:}</th> 
    35                         <th width="*" class="left"><a href="{makeUrl(#list#,#user#,#user#,##,#frmSortBy|username||frmSortOrder|sortOrder#)}" title="{translate(#Sort by#)} {translate(#Username#)}">{translate(#Username#)}</a>{if:sort_username}<img src="{webRoot}/themes/{theme}/images/sort_{sortOrder}.gif" alt="" />{end:}</th> 
     34                        <th width="10%" class="left"><a href="{makeUrl(#list#,#user#,#user#,##,#frmSortBy|username||frmSortOrder|sortOrder#)}" title="{translate(#Sort by#)} {translate(#Username#)}">{translate(#Username#)}</a>{if:sort_username}<img src="{webRoot}/themes/{theme}/images/sort_{sortOrder}.gif" alt="" />{end:}</th> 
    3635                        {if:conf[OrgMgr][enabled]} 
    3736                        <th width="10%">{translate(#Organisation#)}</th> 
     
    6968                        </td> 
    7069                        <td> 
    71                             <input type="button" class="sgl-button" name="frmReset" value="{translate(#reset#)}" 
     70                            <input type="button" name="frmReset" value="{translate(#reset#)}" 
    7271                                onclick="javascript:='{makeUrl(#editGroups#,#luusers#,#liveuser#)}user_id/{aValue[usr_id]}'" /> 
    7776                        </td>       
    7877                        <td flexy:if="isAdmin(aValue[role_id])"> </td> 
    7978                        <td flexy:if="!isAdmin(aValue[role_id])"> 
    80                             <input type="button" class="sgl-button" name="frmReset" value="{translate(#change#)}" 
     79                            <input type="button" name="frmReset" value="{translate(#change#)}" 
    8180                                onClick="javascript:document.location.href='{makeUrl(#editPerms#,#user#,##,aPagedData[data],#frmUserID|usr_id#,key)}'" /> 
    8281                        </td> 
     
    8988                </tbody> 
    9089            </table> 
    91             <input type="submit" class="sgl-button" name="delete" value="{translate(#delete selected#)}" 
     90            <input type="submit" class="wideButton" name="delete" value="{translate(#delete selected#)}" 
    9291                   onclick="return confirmSubmit('{translate(#user#)}', 'users')" /> 
    9392        </fieldset> 
     
    109108            <p> 
    110109                <label> </label> 
    111                 <input type="submit" class="sgl-button" name="syncToRole" value="{translate(#sync perms with role#,#ucfirst#)}" 
     110                <input type="submit" class="wideButton" name="syncToRole" value="{translate(#sync perms with role#,#ucfirst#)}" 
    112111                    onclick="return confirmCustom('{translate(#You must select a user to sync#)}', '{translate(#Are you sure you want to sync this user(s)?#)}', 'users')"/> 
    113112            </p> 
  • branches/liveuser/modules/user/templates/admin_userManagerLogins.html

    r2135 r2499  
    3030<div id="content"> 
    3131    <div id="content-header"> 
    32         <h2>{translate(pageTitle)}</h2> 
    3332        <div class="message">{msgGet()}</div> 
    3433    </div> 
     
    7170                </tbody> 
    7271            </table> 
    73             <input type="submit" class="sgl-button" name="truncateLoginTbl" value="{translate(#delete selected#)}" onclick="return confirm('{translate(#Are you sure?#)}')" /> 
     72            <input type="submit" class="wideButton" name="truncateLoginTbl" value="{translate(#delete selected#)}" onclick="return confirm('{translate(#Are you sure?#)}')" /> 
    7473        </fieldset> 
    7574    </form> 
  • branches/liveuser/modules/user/templates/admin_userManagerSearch.html

    r2135 r2499  
    1919<div id="content"> 
    2020    <div id="content-header"> 
    21         <h2>{translate(pageTitle)}</h2> 
    2221        <div class="message">{msgGet()}</div> 
    2322    </div> 
  • branches/liveuser/modules/user/templates/admin_userPasswordEdit.html

    r2135 r2499  
    77<div id="content"> 
    88    <div id="content-header"> 
    9         <h2>{translate(pageTitle)}</h2> 
    109        <div class="message">{msgGet()}</div> 
    1110    </div> 
     
    3736            </p> 
    3837        </fieldset> 
     38        <p> 
     39            <input type="submit" class="wideButton" name="submitted" value="{translate(#Save#)}" accesskey="s" /> 
     40            <input type="button" class="wideButton" onclick="javascript:document.location.href='{makeUrl(#summary#,#account#,#user#)}'" value="{translate(#Cancel#)}" accesskey="c" /> 
     41        </p> 
    3942    </form> 
    40  
    4143    <div class="spacer"></div> 
    4244</div> 
  • branches/liveuser/modules/user/templates/admin_userPasswordReset.html

    r2135 r2499  
    66<div id="content"> 
    77    <div id="content-header"> 
    8         <h2>{translate(pageTitle)}</h2> 
    98        <div class="message">{msgGet()}</div> 
    109    </div> 
     
    2524            </p> 
    2625        </fieldset> 
     26        <p> 
     27            <input type="submit" class="wideButton" name="submitted" value="{translate(#Save#)}" accesskey="s" /> 
     28            <input type="button" class="wideButton" onclick="javascript:document.location.href='{makeUrl(##,#user#,#user#)}'" value="{translate(#Cancel#)}" accesskey="c" /> 
     29        </p> 
    2730    </form> 
    2831    <div class="spacer"></div> 
  • branches/liveuser/modules/user/templates/admin_userPermsEdit.html

    r2135 r2499  
    77<div id="content"> 
    88    <div id="content-header"> 
    9         <h2>{translate(pageTitle)} {translate(#for user id#)} {userID}</h2> 
    109        <div class="message">{msgGet()}</div> 
    1110    </div> 
     
    3635        </fieldset> 
    3736        {end:} 
     37        <p> 
     38            <input type="submit" class="wideButton" name="submitted" value="{translate(#Save#)}" accesskey="s" /> 
     39            <input type="button" class="wideButton" onclick="javascript:document.location.href='{makeUrl(##,#user#,#user#)}'" value="{translate(#Cancel#)}" accesskey="c" /> 
     40        </p> 
    3841    </form> 
    3942    <div class="spacer"></div> 
  • branches/liveuser/modules/user/templates/admin_userStatusChange.html

    r2135 r2499  
    77<div id="content"> 
    88    <div id="content-header"> 
    9         <h2>{translate(pageTitle)}</h2> 
    109        <div class="message">{msgGet()}</div> 
    1110    </div>