123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- class UsersController < ApplicationController
- before_filter :authentication_check, :except => [:create, :password_reset_send, :password_reset_verify]
- # GET /users
- def index
- @users = User.all
- @users_all = []
- @users.each {|user|
- @users_all.push User.user_data_full( user.id )
- }
- render :json => @users_all
- end
- # GET /users/1
- def show
- @user = User.user_data_full( params[:id] )
- render :json => @user
- end
- # POST /users
- def create
- @user = User.new(params[:user])
- @user.created_by_id = (current_user && current_user.id) || 1
- if @user.save
- # if it's a signup, add user to customer role
- if @user.created_by_id == 1
- # check if it's first user
- count = User.all.count()
- group_ids = []
- role_ids = []
- # add first user as admin/agent and to all groups
- if count <= 2
- Role.where( :name => [ 'Admin', 'Agent'] ).each { |role|
- role_ids.push role.id
- }
- Group.all().each { |group|
- group_ids.push group.id
- }
- # everybody else will go as customer per default
- else
- role_ids.push Role.where( :name => 'Customer' ).first.id
- end
- @user.role_ids = role_ids
- @user.group_ids = group_ids
- # else do assignment as defined
- else
- if params[:role_ids]
- @user.role_ids = params[:role_ids]
- end
- if params[:group_ids]
- @user.group_ids = params[:group_ids]
- end
- end
- # send inviteation if needed
- if params[:invite]
- # logger.debug('IIIIIIIIIIIIIIIIIIIIIIIIIIIIII')
- # exit '123'
- end
- render :json => @user, :status => :created
- else
- render :json => @user.errors, :status => :unprocessable_entity
- end
- end
- # PUT /users/1
- def update
- @user = User.find(params[:id])
- if @user.update_attributes(params[:user])
- if params[:role_ids]
- @user.role_ids = params[:role_ids]
- end
- if params[:group_ids]
- @user.group_ids = params[:group_ids]
- end
- if params[:organization_ids]
- @user.organization_ids = params[:organization_ids]
- end
- @user = User.user_data_full( params[:id] )
- render :json => @user, :status => :ok
- else
- render :json => @user.errors, :status => :unprocessable_entity
- end
- end
- # DELETE /users/1
- def destroy
- @user = User.find(params[:id])
- @user.destroy
- head :ok
- end
- # POST /users/reset_password
- def password_reset_send
- success = User.password_reset_send( params[:username] )
- if success
- render :json => { :message => 'ok' }, :status => :ok
- else
- render :json => { :message => 'failed' }, :status => :unprocessable_entity
- end
- end
- # get /users/verify_password/:hash
- def password_reset_verify
- if params[:password]
- success = User.password_reset_via_token( params[:token], params[:password] )
- else
- success = User.password_reset_check( params[:token] )
- end
- if success
- render :json => { :message => 'ok' }, :status => :ok
- else
- render :json => { :message => 'failed' }, :status => :unprocessable_entity
- end
- end
- end
|