Alx09

Drepturi adminstrare fiser

Mar 1st, 2021
488
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define natural unsigned short
  5.  
  6. void Rights_admin();
  7.  
  8. int main() {
  9. Rights_admin();
  10.            
  11. }
  12.  
  13. typedef enum { Read = 1, Write = 2, Delete = 4, Rename = 8, Copy = 16, All = 31 }rights;
  14.  
  15. void Add_rights(char *user, rights Right) {
  16.     *user |= Right;
  17. }
  18.  
  19. void Remove_rights(char *user, rights Right) {
  20.     *user &= ~Right;
  21. }
  22.  
  23. void Show_rights(char user, natural i) {
  24.     if (user == 31)
  25.         printf("Utilizatorul %hu are drepturi depline.\n", i + 1);
  26.     else if (user == 0)
  27.         printf("Utilizatorul %hu nu are drepturi asupra acestui fiser.\n", i + 1);
  28.     else {
  29.         printf("Utilizatorul %hu are drepturile: ", i + 1);
  30.         if (user & Read)
  31.             printf("Citire, ");
  32.         if (user & Write)
  33.             printf("Scriere, ");
  34.         if (user & Delete)
  35.             printf("Stergere, ");
  36.         if (user & Rename)
  37.             printf("Redenumire, ");
  38.         if (user & Copy)
  39.             printf("Copiere, ");
  40.  
  41.         printf("\b\b. \n");
  42.     }
  43.  
  44. }
  45.  
  46. void Rights_admin() {
  47.     natural numberUsers, i, option, option2;
  48.     char *users;
  49.     do {
  50.         printf("Introduceti numarul de utilizatori: "); scanf("%hu", &numberUsers);
  51.     } while (!numberUsers);
  52.     users = (char *)malloc(sizeof(char) * numberUsers);
  53.     for (i = 0; i < numberUsers; i++) users[i] = 0;
  54.     Add_rights(&users[0], All);
  55.     do {
  56.  
  57.         printf("\nPrimul utilizator are drepturi depline.\n\n");
  58.         printf("0. Introarcere in main.\n");
  59.         printf("1. Adaugare de drepturi.\n");
  60.         printf("2. Scoatere de drepturi.\n");
  61.         printf("3. Afisarare drepturilor utilizatorilor.\n");
  62.         printf("Introduceti optiunea dorita: "); scanf("%hu", &option);
  63.         system("cls");
  64.  
  65.         switch (option)
  66.         {
  67.         case 1:
  68.             printf("Utilizatorul caruia i se adauga: "); scanf("%hu", &i);
  69.             i--;
  70.             if (!i) {
  71.                 printf("\nPrimul utilizator nu se poate modifica.\n\n");
  72.                 continue;
  73.             }
  74.             printf("\nIntroduceti cifrele corspunzatoare drepturilor dorite!\n");
  75.             printf("1. Citire.\n");
  76.             printf("2. Scriere.\n");
  77.             printf("3. Stergere.\n");
  78.             printf("4. Redenumire.\n");
  79.             printf("5. Copiere.\n");
  80.             printf("6. Toate.\n");
  81.             printf("Introduceti optiunea dorita: "); scanf("%hu", &option2);
  82.             do {
  83.                 switch (option2 % 10) {
  84.                 case 1: Add_rights(&users[i], Read);
  85.                     break;
  86.                 case 2: Add_rights(&users[i], Write);
  87.                     break;
  88.                 case 3: Add_rights(&users[i], Delete);
  89.                     break;
  90.                 case 4: Add_rights(&users[i], Rename);
  91.                     break;
  92.                 case 5: Add_rights(&users[i], Copy);
  93.                     break;
  94.                 default:
  95.                     break;
  96.                 }
  97.                 if (option2 % 10 == 6) {
  98.                     Add_rights(&users[i], All);
  99.                     break;
  100.                 }
  101.                 option2 /= 10;
  102.             } while (option2);
  103.             break;
  104.         case 2:
  105.             printf("Utilizatorul caruia i se scoate: "); scanf("%hu", &i);
  106.             i--;
  107.             if (!i) {
  108.                 printf("Primul utilizator nu se poate modifica\n");
  109.                 continue;
  110.             }
  111.             printf("\nIntroduceti cifrele corspunzatoare drepturilor dorite!\n");
  112.             printf("1. Citire.\n");
  113.             printf("2. Scriere.\n");
  114.             printf("3. Stergere.\n");
  115.             printf("4. Redenumire.\n");
  116.             printf("5. Copiere.\n");
  117.             printf("6. Toate\n");
  118.             printf("Introduceti optiunea dorita: "); scanf("%hu", &option2);
  119.             do {
  120.                 switch (option2 % 10) {
  121.                 case 1: Remove_rights(&users[i], Read);
  122.                     break;
  123.                 case 2: Remove_rights(&users[i], Write);
  124.                     break;
  125.                 case 3: Remove_rights(&users[i], Delete);
  126.                     break;
  127.                 case 4: Remove_rights(&users[i], Rename);
  128.                     break;
  129.                 case 5: Remove_rights(&users[i], Copy);
  130.                     break;
  131.                 default:
  132.                     break;
  133.                 }
  134.                 if (option2 % 10 == 6) {
  135.                     Remove_rights(&users[i], All);
  136.                     break;
  137.                 }
  138.                 option2 /= 10;
  139.             } while (option2);
  140.             break;
  141.         case 3:
  142.             for (i = 0; i < numberUsers; i++)
  143.                 Show_rights(users[i], i);
  144.             break;
  145.         default:
  146.             printf("Date introduse gresit!\n");
  147.             break;
  148.         }
  149.     } while (option);
  150. }
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

Ă—