/** * (false|int) actionDelete : 根据unitcode删除单位或部门 * @return false|int * @throws NotFoundHttpException * @throws \Exception */ public function actionDelete() { try { $user_id = Yii::$app->user->identity->id; $unitcode = Yii::$app->request->post('unitcode'); $unit = $this->findModel($unitcode); if (MapUnit::getUserPower($user_id, $unitcode) != MapUnit::USER_POWER_ALLOW) { return '权限不足'; } return $unit->delete(); } catch (\Exception $e) { return 'StaleObject'; } }
/** * (void) validateAttribute : 校验当前用户是否取得单位编码的完全访问权限 * @param \yii\base\Model $model * @param string $attribute */ public function validateAttribute($model, $attribute) { /** @var integer $user_id 当前用户ID */ $user_id = Yii::$app->user->identity->id; /** @var string $unitcode 校验单位编码 */ $unitcode = $model->{$attribute}; switch ($attribute) { case 'unitcode': //修改 if (Unit::findOne(['unitcode' => $unitcode]) && MapUnit::getUserPower($user_id, $unitcode) != MapUnit::USER_POWER_ALLOW) { $this->addError($model, $attribute, '你没有单位(部门)『' . $unitcode . '』的『完全访问』权限.'); } break; case 'upunitcode': //新增 if (!Unit::findOne(['upunitcode' => $unitcode]) && MapUnit::getUserPower($user_id, $unitcode) < MapUnit::USER_POWER_VIEW_DEPT) { $this->addError($model, $attribute, '你没有单位(部门)『' . $unitcode . '』的『完全访问』权限.'); } break; } }
/** * (string) actionCheckUnitAccessible : 客户端ajax校验当前用户是否取得单位编码的完全访问权限 * 见common\components\validators\UnitAccessible * @return string */ public function actionCheckUnitAccessible() { /** @var string $attribute 字段:unitcode、upunitcode或unit */ $attribute = Yii::$app->request->post('attribute'); /** @var string $value 字段对应的值 */ $value = Yii::$app->request->post('value'); /** @var integer $user_id 当前用户ID */ $user_id = Yii::$app->user->identity->id; $errMsg = ''; switch ($attribute) { case 'unitcode': //修改 if (Unit::findOne(['unitcode' => $value]) && MapUnit::getUserPower($user_id, $value) != MapUnit::USER_POWER_ALLOW) { $errMsg = '你没有单位(部门)『' . $value . '』的『完全访问』权限.'; } break; case 'upunitcode': //新增 if (!Unit::findOne(['upunitcode' => $value]) && MapUnit::getUserPower($user_id, $value) < MapUnit::USER_POWER_VIEW_DEPT) { $errMsg = '你没有单位(部门)『' . $value . '』的『完全访问』权限.'; } break; } return $errMsg; }