/** * Admin can set calendar permissions for all users */ public function actionUserCalendarPermissions() { if (isset($_POST['user-id'])) { $id = $_POST['user-id']; // clear old permissions X2CalendarPermissions::model()->deleteAllByAttributes(array('user_id' => $id)); $viewPermission = array(); $editPermission = array(); // $_POST['view-permission'] won't be set if no user has view permission if (isset($_POST['view-permission'])) { // any users have permssion to view this user's calendar? $viewPermission = $_POST['view-permission']; } if (isset($_POST['edit-permission'])) { // any users have permssion to edit this user's calendar? $editPermission = $_POST['edit-permission']; } $users = User::model()->findAll(array('select' => 'id')); foreach ($users as $user) { $view = in_array($user->id, $viewPermission); $edit = in_array($user->id, $editPermission); $permission = new X2CalendarPermissions(); $permission->user_id = $id; $permission->other_user_id = $user->id; $permission->view = $view; $permission->edit = $edit; $permission->save(); } } if (isset($_GET['id'])) { $this->render('userCalendarPermissions', array('id' => $_GET['id'])); } else { $this->render('userCalendarPermissions'); } }