mirror of
https://github.com/e107inc/e107.git
synced 2025-08-01 20:30:39 +02:00
Issue #5476 Copy/Paste user permissions option added.
This commit is contained in:
@@ -189,6 +189,20 @@ JS;
|
||||
->setMode('main')
|
||||
->setAction('emulate');
|
||||
break;
|
||||
|
||||
case 'copyperms':
|
||||
$this->getRequest()
|
||||
->setQuery(array())
|
||||
->setMode('main')
|
||||
->setAction('copyperms');
|
||||
break;
|
||||
|
||||
case 'pasteperms':
|
||||
$this->getRequest()
|
||||
->setQuery(array())
|
||||
->setMode('main')
|
||||
->setAction('pasteperms');
|
||||
break;
|
||||
|
||||
// redirect to AdminObserver/AdminPage()
|
||||
case 'admin':
|
||||
@@ -891,6 +905,50 @@ class users_admin_ui extends e_admin_ui
|
||||
$this->redirect('list', 'main', true);
|
||||
|
||||
}
|
||||
|
||||
public function copypermsPage()
|
||||
{
|
||||
if(getperms('0') && !empty($_POST['userid']))
|
||||
{
|
||||
$uid = (int) $_POST['userid'];
|
||||
e107::getSession()->set('copyperms',$uid);
|
||||
$user = e107::user($uid);
|
||||
e107::getMessage()->addSuccess("Copied permissions of <strong>".$user['user_name']."</strong> to clipboard.", 'default', true);;
|
||||
}
|
||||
|
||||
$this->redirect('list', 'main', false);
|
||||
|
||||
}
|
||||
|
||||
public function pastepermsPage()
|
||||
{
|
||||
$originUser = (int) e107::getSession()->get('copyperms', true);
|
||||
|
||||
if(getperms('0') && !empty($_POST['userid']) && $originUser)
|
||||
{
|
||||
if(!$user = e107::getDb()->retrieve('user', 'user_name, user_admin, user_class, user_perms', 'user_id='.$originUser))
|
||||
{
|
||||
e107::getMessage()->addError("Failed to retrieve user permissions.", 'default', true);
|
||||
return;
|
||||
}
|
||||
|
||||
$destUser = (int) $_POST['userid'];
|
||||
|
||||
$sysuser = e107::getSystemUser($destUser, false);
|
||||
|
||||
$result = $sysuser->set('user_perms', $user['user_perms'])
|
||||
->set('user_class', $user['user_class'])
|
||||
->save();
|
||||
|
||||
$name = $sysuser->getName();
|
||||
|
||||
e107::getMessage()->addSuccess("Copied permissions from <strong>".$user['user_name']."</strong> to <strong>$name</strong>.", 'default', true);;
|
||||
}
|
||||
|
||||
$this->redirect('list', 'main', false);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Remove admin status trigger
|
||||
@@ -2820,6 +2878,16 @@ class users_admin_form_ui extends e_admin_form_ui
|
||||
if(getperms('0'))
|
||||
{
|
||||
$opts['emulate'] = 'Emulate permissions';
|
||||
|
||||
if(e107::getSession()->get('copyperms'))
|
||||
{
|
||||
$opts['pasteperms'] = 'Paste permissions';
|
||||
}
|
||||
else
|
||||
{
|
||||
$opts['copyperms'] = 'Copy permissions';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$opts['adminperms'] = USRLAN_221;
|
||||
|
Reference in New Issue
Block a user