ZAdmin.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /**
  3. * summary: 管理员组件
  4. * author: justin
  5. * date: 2014.01.03
  6. */
  7. class ZAdmin extends ZComponent
  8. {
  9. /**
  10. * 返回管理员名称
  11. */
  12. public function getAdminNames($_ids){
  13. $criteria = new EMongoCriteria();
  14. $criteria->_id('in', $_ids);
  15. $cursor = User::model()->findAll($criteria);
  16. $admin_names = array();
  17. foreach ($cursor as $v){
  18. $admin_names[$v->_id] = $v->name;
  19. }
  20. return $admin_names;
  21. }
  22. /**
  23. * 根据名称返回管理员信息
  24. */
  25. public function getAdminFromName($name){
  26. $criteria = new EMongoCriteria();
  27. $criteria->name('==', $name);
  28. $cursor = User::model()->find($criteria);
  29. return $cursor;
  30. }
  31. /**
  32. * 返回拥有某一权限的管理员列表
  33. */
  34. public function getAuthUser($name){
  35. $auth = Yii::app()->authManager;
  36. $task_user_ids = $auth->getAuthUser($name);
  37. $criteria = new EMongoCriteria();
  38. $criteria->_id('in', $task_user_ids);
  39. $cursor = User::model()->findAll($criteria);
  40. $data = array();
  41. foreach ($cursor as $v){
  42. $data[$v->_id] = $v->attributes;
  43. }
  44. return $data;
  45. }
  46. /**
  47. * 获取管理员信息
  48. */
  49. public function getAdminInfo($_ids, $fields=null, $default=''){
  50. if (is_array($_ids)){
  51. $where = array('_id' => array('$in' => $_ids));
  52. $items = $this->getMultipleModelInfo(User::model(), $where, $fields);
  53. $info = array();
  54. if (is_array($fields) && count($fields) == 1){
  55. $keys = array_keys($fields);
  56. $key = $keys[0];
  57. foreach ($items as $v){
  58. $info[(string)$v['_id']] = $v[$key];
  59. }
  60. } else {
  61. foreach ($items as $v){
  62. $info[(string)$v['_id']] = $v;
  63. }
  64. }
  65. } else {
  66. $where = array('_id' => $_ids);
  67. $info = $this->getSingleModelInfo(User::model(), $where, $fields, $default);
  68. }
  69. return $info;
  70. }
  71. }