예제 #1
0
<?php

$login_required = TRUE;
include "../includes/page.php";
require_once dirname(__FILE__) . '/../../config.inc';
require_once "{$path_prefix}/api/Roles/Roles.php";
if ($_POST['id']) {
    $role = new Roles();
    $role->id = $_POST['id'];
    $roles = $role->get($_POST['id']);
    $div_generate = '<fieldset class="center_box"><input type="hidden"
name="role_id" value="' . $_POST['id'] . ' "/><div class="field"><h4>Name   
</h4><input type="text" name="role_name" class="text longer" value =
"' . $roles->name . '" /></div><div class="field_bigger"><h4>Description :
</h4><textarea name="desc">' . $roles->description . '</textarea></fieldset><div
class="button_position"><input type="submit" class="button-submit" name="submit"
value="Save" /></div>';
}
echo $div_generate;
 private function restoreRoleSettings($restore_roles, $_msg = null)
 {
     try {
         if (count($restore_roles) > 0) {
             $roles = new Roles();
             $roles_info = $roles->get_multiple(null);
             foreach ($roles_info as $_role) {
                 $role = $roles->get($_role->id);
                 if (is_object($role)) {
                     if (!$role->read_only) {
                         $roles->delete((int) $_role->id);
                     }
                 }
             }
             foreach ($restore_roles as $role) {
                 $_role = Roles::getRoleInfoByID($role['id'], $fetch_mode = DB_FETCHMODE_ASSOC);
                 if (isset($_role['id'])) {
                     // existing role, need to update only
                     $new_role = new Roles();
                     $new_role->id = $role['id'];
                     $new_role->description = $role['description'];
                     $new_role->name = $role['name'];
                     $new_role->type = $role['type'];
                     $new_role->update();
                     Roles::delete_role_tasks($new_role->id);
                     if (!empty($role['tasks'])) {
                         $tasks = array();
                         foreach ($role['tasks'] as $task) {
                             $tasks[] = $task['id'];
                         }
                         Roles::assign_tasks_to_role($tasks, $new_role->id);
                     }
                 } else {
                     $new_role = new Roles();
                     $new_role->description = $role['description'];
                     $new_role->name = $role['name'];
                     $role_id = $new_role->create();
                     if ($role_id && !empty($role['tasks'])) {
                         $tasks = array();
                         foreach ($role['tasks'] as $task) {
                             $tasks[] = $task['id'];
                         }
                         Roles::assign_tasks_to_role($tasks, $role_id);
                     }
                 }
             }
             $error_msg = $_msg ? $_msg : __('Default Roles settings sucessfully restored.');
         } else {
             $error_msg = __('There is no Roles data in default XML settings file.');
         }
     } catch (Exception $e) {
         $error = TRUE;
         $error_msg = $e->getMessage();
     }
     return $error_msg;
 }