PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (3): « 1 2 [3]

> Найдено сообщений: 36
Jlblcblu Отправлено: 30 Марта, 2010 - 16:45:57 • Тема: Распределение прав доступа • Форум: Программирование на PHP

Ответов: 14
Просмотров: 3463
Сделал группы. Но опять все не столь радужно. Попробую сформулировать чуть иначе и показать на примере конкретно в чем нужна помощь.

Имеем:
Something.php c такой таблицей
+--+----------+----+------+
| 1 | String_1 |edit |delete|
| 2 | String_2 |edit |delete|
+--+----------+----+------+

Add_something.php c некоторой информацией.

Таблица MySQL - "Access":
+-id-+-group_name-+-access-+
| 1 | Admins |77 |
| 2 | Users |12 |
| 3 | Guests |00 |
+-----+----------------+---------+
И что у нас выходит.
Мы авторизумся и, допустим, получаем права на КАЖДУЮ страницу.
Т.е. после авторизации в $_session['access']="77" за админа, "12" за user`а и т.д.

Дальше мы берем циферку под каждую страничку $_session['access'][0] (something.php) и $_session['access'][1] (dd_something.php).

И при формировании страницы пишем:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. if($_session['access'][0]!="0"){
  3.      if($_session['access'][0]=="1" || $_session['access'][0]=="3" || $_session['access'][0]=="5" ||$_session['access'][0]=="7") echo 'delete';
  4. }else{echo "Доступ запрещен!";}
  5.  

Используя такие правила:

0 - ничего нельзя
1 - разрешено удаление
2 - разрешено редактирование
3 - разрешено редактирование и удаление
4 - разрешен просмотр
5 - разрешены просмотр и удаление
6 - разрешены просмотр и редактирование
7 - разрешено все

И все 30 страничек изрезать такими вот проверками) поперепутав какая по счету циферка относится к какой странице в $_SESSION['access']="12312312356124375612473";

Вот как то так я себе это видел) может глупо) что скажете на это?
Jlblcblu Отправлено: 30 Марта, 2010 - 15:56:08 • Тема: Распределение прав доступа • Форум: Программирование на PHP

Ответов: 14
Просмотров: 3463
lodar пишет:
Лучше всего создать группы пользователей. Таким образом на будущее возможно расширять права не одного, а целой группы. Если использовать БД, то каждой группе назначай уникальный ид и соответственно проверку через ид на права.


Хм.. С группами хорошая идея. Действительно логичней будет.
Использую MySQL.

И вот с этими проверками на права никак не могу понять что да как)
Допустим логинится кто-то, получает $_SESSION['access']... и тут хранить некие показатели для каждой страницы? если их20-30.. можно и запутаться что куда..

Вот тут приведен пример, но он как-то не очень: _http://ru-sait.ru/publ/18-1-0-262_
Jlblcblu Отправлено: 30 Марта, 2010 - 15:46:14 • Тема: Распределение прав доступа • Форум: Программирование на PHP

Ответов: 14
Просмотров: 3463
Добрый день, подсел на Ваш форум, почитал много интересного) И вот появился вопрос:

Нужно организовать разделение прав у нескольких пользователей.
А теперь подробней что да как:

Допустим у нас есть 3 пользователя:

Admin - можeт все
User_1 - может смотреть
User_2 - может смотреть, редактировать, удалять.
User_3 - ему доступ запрещен

Естественно админ может проставить кому что можно.

Каким образом лучше и правильней все это сделать? Буду благодарен за любую помощь, отвечу на дополнительные вопросы)

З.Ы.
Поиском пользовался, но то, что я нашел - не очень понравилось.
Jlblcblu Отправлено: 23 Марта, 2010 - 19:01:18 • Тема: проблема с круговой диаграммой (статья) • Форум: Обсуждение статей

Ответов: 5
Просмотров: 4620
Оказалась все не очень сложно, но это надо было поймать.

Если у нас массив

То при выводе диаграммы мы рисуем первым цветом. А так как 2 последующих угла не меняются, например, то мы "прям поверх" зарисовываем часть эллипса следующими цветами. Вот он наш мини баг)

Исправил добавлением условия при выводе. Там сравнивается текущий угол и следующий. Если они равны то не рисовать) Все просто.

PHP:
скопировать код в буфер обмена
  1.  
  2.         // Вывод тени
  3.         for ($j=20;$j>0;$j--)
  4.                 for ($i=0;$i<count($anglesum)-1;$i++)
  5.                         if ($anglesum[$i+1]!=$anglesum[$i]){
  6.                         ImageFilledArc($im,$circle_x,$circle_y+$j,
  7.                                $diametr,$diametr/2,
  8.                                $anglesum[$i],$anglesum[$i+1],
  9.                                $SHADOWS[$i],IMG_ARC_PIE);}
  10.  
  11.         // Вывод круговой диаграммы
  12.         for ($i=0;$i<count($anglesum)-1;$i++)
  13.                 if ($anglesum[$i+1]!=$anglesum[$i]){
  14.                 ImageFilledArc($im,$circle_x,$circle_y,
  15.                            $diametr,$diametr/2,
  16.                            $anglesum[$i],$anglesum[$i+1],
  17.                            $COLORS[$i],IMG_ARC_PIE);}
  18.         }
  19.  


Может кому-то поможет, может кто-то исправит иначе. Но главное - работает.
Спасибо за то, что хоть кто-то откликнулся.
Jlblcblu Отправлено: 23 Марта, 2010 - 14:08:23 • Тема: проблема с круговой диаграммой (статья) • Форум: Обсуждение статей

Ответов: 5
Просмотров: 4620
Champion пишет:
А дуга с нулевым углом плохо рисуется? Попробуй там где считаются углы, поставить continue, если part == 0


К сожалению это не помогло. Скрипт зависает вовсе.
Пример входных данных:
Jlblcblu Отправлено: 23 Марта, 2010 - 03:10:29 • Тема: проблема с круговой диаграммой (статья) • Форум: Обсуждение статей

Ответов: 5
Просмотров: 4620
Статья

Все работает хорошо.. до тех пор пока в данных не появится 0.

Ведь может быть такая ситуация, что одна из переменных равна 0 и отображать на диаграмме не надо ее.

Подскажите как исправить это, пожалуйста.

Страниц (3): « 1 2 [3]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB