userExists($u)) { $users[] = $u; } } } $blogs = array(); if (!empty($_POST['blogs']) && is_array($_POST['blogs'])) { foreach ($_POST['blogs'] as $b) { if ($core->blogExists($b)) { $blogs[] = $b; } } } /* Actions -------------------------------------------------------- */ if (!empty($_POST['action']) && !empty($_POST['users'])) { $action = $_POST['action']; if (isset($_POST['redir']) && strpos($_POST['redir'],'://') === false) { $redir = $_POST['redir']; } else { $redir = 'users.php?q='.$_POST['q']. '&sortby='.$_POST['sortby']. '&order='.$_POST['order']. '&page='.$_POST['page']. '&nb='.$_POST['nb']; } if (empty($users)) { $core->error->add(__('No blog or user given.')); } # --BEHAVIOR-- adminUsersActions $core->callBehavior('adminUsersActions',$core,$users,$blogs,$action,$redir); # Delete users if ($action == 'deleteuser' && !empty($users)) { foreach ($users as $u) { try { if ($u == $core->auth->userID()) { throw new Exception(__('You cannot delete yourself.')); } # --BEHAVIOR-- adminBeforeUserDelete $core->callBehavior('adminBeforeUserDelete',$u); $core->delUser($u); } catch (Exception $e) { $core->error->add($e->getMessage()); } } if (!$core->error->flag()) { http::redirect($redir.'&del=1'); } } # Update users perms if ($action == 'updateperm' && !empty($users) && !empty($blogs)) { try { if (empty($_POST['your_pwd']) || !$core->auth->checkPassword(crypt::hmac(DC_MASTER_KEY,$_POST['your_pwd']))) { throw new Exception(__('Password verification failed')); } foreach ($users as $u) { foreach ($blogs as $b) { $set_perms = array(); if (!empty($_POST['perm'][$b])) { foreach ($_POST['perm'][$b] as $perm_id => $v) { if ($v) { $set_perms[$perm_id] = true; } } } $core->setUserBlogPermissions($u,$b,$set_perms,true); } } } catch (Exception $e) { $core->error->add($e->getMessage()); } if (!$core->error->flag()) { http::redirect($redir.'&upd=1'); } } } /* DISPLAY -------------------------------------------------------- */ if (!empty($users) && empty($blogs) && $action == 'blogs') { $breadcrumb = dcPage::breadcrumb( array( __('System') => '', __('Users') => 'users.php', ''.__('Permissions').'' => '' )); } else { $breadcrumb = dcPage::breadcrumb( array( __('System') => '', __('Users') => 'users.php', ''.__('Actions').'' => '' )); } dcPage::open( __('Users'), dcPage::jsLoad('js/_users_actions.js'). # --BEHAVIOR-- adminUsersActionsHeaders $core->callBehavior('adminUsersActionsHeaders'), $breadcrumb ); if (!isset($action)) { dcPage::close(); exit; } $hidden_fields = ''; foreach($users as $u) { $hidden_fields .= form::hidden(array('users[]'),$u); } if (isset($_POST['redir']) && strpos($_POST['redir'],'://') === false) { $hidden_fields .= form::hidden(array('redir'),html::escapeURL($_POST['redir'])); } else { $hidden_fields .= form::hidden(array('q'),html::escapeHTML($_POST['q'])). form::hidden(array('sortby'),$_POST['sortby']). form::hidden(array('order'),$_POST['order']). form::hidden(array('page'),$_POST['page']). form::hidden(array('nb'),$_POST['nb']); } echo '

'.__('Back to user profile').'

'; # --BEHAVIOR-- adminUsersActionsContent $core->callBehavior('adminUsersActionsContent',$core,$action,$hidden_fields); # Blog list where to set permissions if (!empty($users) && empty($blogs) && $action == 'blogs') { try { $rs = $core->getBlogs(); $nb_blog = $rs->count(); } catch (Exception $e) { } foreach ($users as $u) { $user_list[] = ''.$u.''; } echo '

'.sprintf( __('Choose one or more blogs to which you want to give permissions to users %s.'), implode(', ',$user_list) ).'

'; if ($nb_blog == 0) { echo '

'.__('No blog').'

'; } else { echo '
'. '
'. ''. ''. ''. ''. ''. ''; while ($rs->fetch()) { $img_status = $rs->blog_status == 1 ? 'check-on' : 'check-off'; $txt_status = $core->getBlogStatus($rs->blog_status); $img_status = sprintf('%2$s',$img_status,$txt_status); echo ''. ''. ''. ''. ''. ''. ''; } echo '
'.__('Blog ID').''.__('Blog name').''.__('Entries').''.__('Status').'
'. form::checkbox(array('blogs[]'),$rs->blog_id,'','','',false,'title="'.__('select').' '.$rs->blog_id.'"').''.$rs->blog_id.''.html::escapeHTML($rs->blog_name).''.$core->countBlogPosts($rs->blog_id).''.$img_status.'
'. '

'. '

'. $hidden_fields. form::hidden(array('action'),'perms'). $core->formNonce().'

'. '
'; } } # Permissions list for each selected blogs elseif (!empty($blogs) && !empty($users) && $action == 'perms') { $user_perm = array(); if (count($users) == 1) { $user_perm = $core->getUserPermissions($users[0]); } foreach ($users as $u) { $user_list[] = ''.$u.''; } echo '

'.sprintf( __('You are about to change permissions on the following blogs for users %s.'), implode(', ',$user_list) ).'

'. '
'; foreach ($blogs as $b) { echo '

'.('Blog:').' '.html::escapeHTML($b).''. form::hidden(array('blogs[]'),$b).'

'; foreach ($core->auth->getPermissionsTypes() as $perm_id => $perm) { $checked = false; if (count($users) == 1) { $checked = isset($user_perm[$b]['p'][$perm_id]) && $user_perm[$b]['p'][$perm_id]; } echo '

'; } } echo '
'. '

'.__('Validate permissions').'

'. '

'. form::password('your_pwd',20,255).'

'. '

'. $hidden_fields. form::hidden(array('action'),'updateperm'). $core->formNonce().'

'. '
'. '
'; } dcPage::close(); ?>